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

如何通过Github GraphQL API按正则匹配查询分支保护规则?

完全可行,你的查询需要调整几个细节
  • 正则表达式写法要修正:你写的feature/*不符合标准正则语法,改成feature/.*才能正确匹配所有以feature/开头的分支。
  • 分支保护规则有两种存在形式:一种是绑定到单个分支的,另一种是直接基于分支模式(比如feature/*)创建的规则(会自动应用到所有匹配分支)。如果想覆盖这两种情况,可以调整查询同时获取:
query RepositoryBranchProtections {
  repository(name: "test", owner: "biologeek") {
    # 获取所有符合正则的单个分支及其绑定的保护规则
    refs(refPrefix: "refs/heads/", first: 99, query: { regex: "feature/.*" }) {
      nodes {
        name
        branchProtectionRule {
          id
          pattern
          pushAllowances(last: 99) {
            nodes {
              actor {
                ... on User {
                  email
                  login
                  name
                }
                ... on Team {
                  name
                  slug
                }
              }
            }
          }
        }
      }
    }
    # 获取直接针对feature/*模式设置的分支保护规则
    branchProtectionRules(first: 99, query: { pattern: "feature/.*" }) {
      nodes {
        id
        pattern
        pushAllowances(last: 99) {
          nodes {
            actor {
              ... on User {
                email
                login
                name
              }
              ... on Team {
                name
                slug
              }
            }
          }
        }
      }
    }
  }
}

补充说明:

  • 如果只需要单个分支的保护规则,保留refs部分即可,记得把正则改成feature/.*。
  • 加上Team片段是因为推送权限经常会分配给团队,不止单个用户,这样能拿到完整的权限信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:45:04