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

如何使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:33:10