1

I'm writing a python module to create projects in gitlab, but I can't figure out how to change the default project settings, like remove_source_branch_after_merge.

I've tried passing the argument to the projects.create() call, but it seems to be ignored.

project = gl.projects.create({'name': reponame, 'namespace_id': group_id, 'default_branch' : default_branch, 'remove_source_branch_after_merge' : False})

I managed to change the setting by manually POST'ing to /api/v4/projects/$ID?remove_source_branch_after_merge=false but I can't figure out how to do this in python-gitlab.

How can I create a project with customized settings, or modify a project settings after its creation in python-gitlab?

I'm using python-gitlab==1.7.0

1 Answer 1

4

To answer your question, modifying attributes after an object has been created can be done with save():

import gitlab

gl = gitlab.Gitlab("https://gitlab.example.com", private_token=token)
project = gl.projects.create(
    {
        "name": reponame,
        "namespace_id": group_id,
        "default_branch": default_branch,
        "remove_source_branch_after_merge": False,
    }
)

# Enable remove after merge
project.remove_source_branch_after_merge = True
project.save()

# Or disable again
project.remove_source_branch_after_merge = False
project.save()

However, I think your initial create call should work, so maybe check for any typos. 1.7.0 is quite old, and I just checked this works on 3.2.0. You can also use gl.enable_debug() to get verbose output and check that the right parameters are sent to the API.

Sign up to request clarification or add additional context in comments.

1 Comment

Thank you, the project.save() trick did it!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.