Python Gitlab API 邀请组来项目

问题描述

我正在尝试在项目创建后将 gitlab 组添加到项目中。我可以在 Gitlab API 文档中看到可以邀请成员加入组或项目 (https://docs.gitlab.com/ee/api/invitations.html)

但是,当导航“项目信息”下的“成员”菜单时,可以从 Gitlab 仪表板邀请小组加入项目。

enter image description here

在使用 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)

结果: enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...