python-gitlab - 如何修改项目设置?

python-gitlab - how to modify project settings?

我正在编写一个 python 模块来在 gitlab 中创建项目,但我不知道如何更改默认项目设置,例如 remove_source_branch_after_merge

我试过将参数传递给 projects.create() 调用,但它似乎被忽略了。

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

我设法通过手动 POST 将设置更改为 /api/v4/projects/$ID?remove_source_branch_after_merge=false 但我不知道如何在 python-gitlab 中执行此操作。

如何创建具有自定义设置的项目,或在 python-gitlab 创建后修改项目设置?

我正在使用 python-gitlab==1.7.0

要回答您的问题,可以在创建对象后修改属性 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()

不过,我认为您最初的创建调用 应该 有效,因此请检查是否有错别字。 1.7.0 已经很旧了,我刚刚检查了它在 3.2.0 上的工作情况。您还可以使用 gl.enable_debug() 获取详细输出并检查是否将正确的参数发送到 API.