我有许多存储库,其中一些包含一个具有相同名称的分支。我希望能够获取包含特定分支名称的所有存储库。到目前为止,这是我所拥有的,但是我似乎无法弄清楚如何添加必要的查询。
{
repositoryOwner(login: "dev") {
repositories(first: 1) {
nodes {
name
refs(first: 15, refPrefix: "refs/heads/") {
edges {
node {
name
}
}
}
}
}
}
}
任何帮助将不胜感激。
答案 0 :(得分:0)
一种方法是请求所有具有qualifiedName
作为<branch_name>
的引用的存储库。然后在您的客户端中删除所有空结果:
{
repositoryOwner(login: "JakeWharton") {
repositories(first: 100) {
nodes {
ref(qualifiedName: "gh-pages") {
repository {
name
description
}
}
}
}
}
}
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,则您必须去through pagination
如果需要在单个存储库(或其中一个存储库)中找到分支名称的组合,也可以使用aliases。例如,寻找分支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
}
}
}
}
}
}