问题描述
我正在尝试在项目创建后将 gitlab 组添加到项目中。我可以在 Gitlab API 文档中看到可以邀请成员加入组或项目 (https://docs.gitlab.com/ee/api/invitations.html)
但是,当导航“项目信息”下的“成员”菜单时,可以从 Gitlab 仪表板邀请小组加入项目。
在使用 python-gitlab API 创建项目后,如何将组添加到项目中?
解决方法
我在 https://python-gitlab.readthedocs.io/en/stable/gl_objects/projects.html#project-members
找到了解决方案需要注意的是,Gitlab 有两种类型的项目,如 https://python-gitlab.readthedocs.io/en/stable/gl_objects/groups.html#group-members
中所述此 API 调用返回的 GroupProject 对象非常有限,并且 不提供 Project 对象的所有功能。如果你需要 操作项目,创建一个新的项目对象:
first_group_project = group.projects.list()[0]
manageable_project = gl.projects.get(first_group_project.id,lazy=True)
要与组共享项目,您需要 manageable_project 对象。
gl = gitlab.Gitlab(settings.GITLABURL,settings.GITLABTOKEN,api_version=4,ssl_verify=False)
gitlab_group = self.gl.groups.list(search="group_name")[0]
project_object = self.gl.projects.get(gitlab_group.id,lazy=True)
project_object.share(project_object.id,gitlab.MAINTAINER_ACCESS)