如何使用GitLab GraphQL API列出或按字段筛选所有分支?
GitLab GraphQL 获取分支详细信息并筛选
你当前用的branchNames字段只能返回分支名称列表,要获取merged、protected这类额外字段,或者按这些字段筛选分支,需要改用repository下的branches字段——它返回完整的Branch对象,包含更多元数据。
1. 获取包含merged、protected的分支信息
使用以下查询,就能拿到分支名称、是否已合并、是否受保护等字段:
{ project(fullPath: "my/project") { repository { branches(searchPattern: "*", offset: 0, limit: 100) { nodes { name merged # 分支是否已合并到默认分支 protected # 分支是否受保护 default # 是否是项目默认分支 webUrl # 分支的网页链接 } } } } }
2. 按字段筛选分支
你可以通过branches的参数直接添加筛选条件:
- 筛选受保护的分支:添加
protected: true参数
{ project(fullPath: "my/project") { repository { branches(searchPattern: "*", protected: true, offset: 0, limit: 100) { nodes { name merged protected } } } } }
- 筛选已合并的分支:添加
merged: true参数
{ project(fullPath: "my/project") { repository { branches(searchPattern: "*", merged: true, offset: 0, limit: 100) { nodes { name merged protected } } } } }
- 组合筛选:比如同时筛选受保护且未合并的分支
{ project(fullPath: "my/project") { repository { branches(searchPattern: "*", protected: true, merged: false, offset: 0, limit: 100) { nodes { name merged protected } } } } }
内容的提问来源于stack exchange,提问作者Kamo Petrosyan
相关产品推荐
相关产品推荐

