1

我有很多存储库,其中一些包含具有相同名称的分支。我希望能够获取包含特定分支名称的所有存储库。这是我到目前为止所拥有的,但我似乎无法弄清楚如何添加必要的查询。

{
  repositoryOwner(login: "dev") {
    repositories(first: 1) {
      nodes {
        name
        refs(first: 15, refPrefix: "refs/heads/") {
          edges {
            node {
              name
            }
          }
        }
      }
    }
  }
}

任何帮助将不胜感激。

4

1 回答 1

0

一种方法是请求所有具有qualifiedNameas的 ref 的存储库<branch_name>。然后在您的客户端删除所有空结果:

{
  repositoryOwner(login: "JakeWharton") {
    repositories(first: 100) {
      nodes {
        ref(qualifiedName: "gh-pages") {
          repository {
            name
            description
          }
        }
      }
    }
  }
}

在资源管理器中尝试

使用 & 排除null结果:

curl -s -H "Authorization: token YOUR_TOKEN" \
     -d '{ 
          "query": "{ repositoryOwner(login: \"JakeWharton\") { repositories(first: 100) { nodes { ref(qualifiedName: \"gh-pages\") { repository { name } } } } } }"
      }' https://api.github.com/graphql | \
      jq -r '.data.repositoryOwner.repositories.nodes[] | select(.ref != null) | .ref.repository.name'

如果有超过 100 个 repos,你将不得不进行分页

如果您需要在单个存储库(或其中一个)中查找分支名称的组合,您还可以使用别名。例如寻找分支gh-pages& 1.0

{
  repositoryOwner(login: "JakeWharton") {
    repositories(first: 100) {
      nodes {
        branch1: ref(qualifiedName: "1.0") {
          repository {
            name
            description
          }
        }
        branch2: ref(qualifiedName: "gh-pages") {
          repository {
            name
            description
          }
        }
      }
    }
  }
}

在资源管理器中尝试

于 2018-07-24T20:28:26.463 回答