首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取一个python组( GitLab -gitlab)中所有存储库的项目ID?

如何获取一个python组( GitLab -gitlab)中所有存储库的项目ID?
EN

Stack Overflow用户
提问于 2021-06-08 03:32:32
回答 1查看 444关注 0票数 0

我想在我的协作的GitLab组中的所有存储库中自动化一些流程,这(至少从GitLab API v4开始)需要项目I而不是名称。

python-gitlab库有没有一种方法可以抓取给定组的所有项目ID?

EN

回答 1

Stack Overflow用户

发布于 2021-06-08 03:40:11

事实证明,确实存在这样的方法!

我已经编写了一个script,它将获取所有项目的列表并提取它们的ID:

代码语言:javascript
复制
#### get_project_ids.py ####
# gets all project ids for a gitlab group
# assumes GitLab 'private_token' is set to env. variable called $GITLAB_TOKEN

import gitlab, os

# authenticate
gl = gitlab.Gitlab('https://gitlab.com/', private_token=os.environ['GITLAB_TOKEN'])

# set gitlab group id
group_id = 55555
group = gl.groups.get(group_id, lazy=True)

#get all projects
projects = group.projects.list(include_subgroups=True, all=True)

#get all project ids
project_ids = []
for project in projects:
    project_ids.append((project.path_with_namespace, project.id))
    
print(project_ids)

如果您随后需要对这些存储库进行操作,则可以使用requests库通过python进行http调用,例如:

代码语言:javascript
复制
import requests

# unprotect master branch for all projects
for pid in project_ids:
    r = requests.request('DELETE', 'https://gitlab.com/api/v4/projects/{}/protected_branches/master'.format(pid[1]), headers = {'PRIVATE-TOKEN' : token})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67877691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档