[英]Gitlab v4 api 403 forbidden error for project.variables.list(get_all=True)
[英]How to list all the project variables in a gitlab project via GitLab V4 api
我想列出 gitlab 项目中的所有项目变量。 我遵循了他们的官方文档,但似乎无法正常工作。
下面是我的代码:
import gitlab, os
# authenticate
gl = gitlab.Gitlab('https://gitlab.com/', private_token=os.environ['GITLAB_TOKEN'])
group = gl.groups.get(20, lazy=True)
projects = group.projects.list(include_subgroups=True, all=True)
for project in projects:
project.variables.list()
错误:
AttributeError:“GroupProject”object 没有属性“变量”
根据常见问题解答:
访问通过
list()
调用检索到的 object 的属性时,我得到一个AttributeError
。获取对象列表并不总是包含对象中的所有属性。 要检索具有所有属性的 object,请使用
get()
调用。
使示例适应您的代码:
for project in projects:
project = gl.projects.get(project.id)
project.variables.list()
问题是group.list
使用组列表项目 API并返回GroupProject
对象,而不是Project
对象。 GroupProject
对象没有.variables
管理器,但Project
对象有.variables 管理器。
要解决此问题,您必须从GroupProject
object 中提取 ID 并单独调用项目 API 以获取Project
object:
group = gl.groups.get(20, lazy=True)
group_projects = group.projects.list(include_subgroups=True, all=True)
for group_project in group_projects:
project = gl.projects.get(group_project.id) # can be lazy if you want
project.variables.list()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.