繁体   English   中英

如何通过 GitLab V4 api 列出 gitlab 项目中的所有项目变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM