You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python Gitlab API获取群组/子群组的全部项目及共享项目

实现方案

完全可以通过python-gitlab API实现该需求,你需要的共享项目可以通过群组的shared_projects接口直接拉取。

完整示例代码

import gitlab

# 初始化gitlab连接,替换为你的实例地址和私人token
gl = gitlab.Gitlab('https://你的gitlab实例地址', private_token='你的私人访问token')

group = gl.groups.get(11111, lazy=True)

# 1. 获取群组含子群组的所有自有项目
own_projects = group.projects.list(include_subgroups=True, all=True)
print("=== 自有项目(含子群组) ===")
for prj in own_projects:
    print(prj.attributes['name'])

# 2. 获取群组的所有共享项目
shared_projects = group.shared_projects.list(all=True)
print("\n=== 共享项目 ===")
for prj in shared_projects:
    print(prj.attributes['name'])

# 可选:合并两类项目并按ID去重
all_project_ids = set()
all_projects = []
for prj in own_projects + shared_projects:
    if prj.id not in all_project_ids:
        all_project_ids.add(prj.id)
        all_projects.append(prj)
print("\n=== 所有项目(自有+共享) ===")
for prj in all_projects:
    print(prj.attributes['name'])

注意事项

  • 你使用的私人访问token需要具备目标群组的读取权限,才能正常拉取共享项目列表
  • 如果共享项目本身为私有项目,需要token同时具备该共享项目的访问权限,否则会出现无法读取属性的问题

内容的提问来源于stack exchange,提问作者Zozzoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:18:01