Github GraphQL列出整个内容树
问题描述:
我想使用GraphQL Github API递归列出目录中包含的所有文件。现在我的查询看起来是这样的:Github GraphQL列出整个内容树
{
search(first:1, type: REPOSITORY, query: "language:C") {
edges {
node {
... on Repository {
name
descriptionHTML
stargazers {
totalCount
}
forks {
totalCount
}
object(expression: "master:") {
... on Tree {
entries {
name
type
}
}
}
}
}
}
}
}
但是,这只给我目录内容的第一级,特别是一些结果对象是树。有没有办法调整查询,以便递归地列出树的内容?
答
无法在GraphQL中递归迭代。但是,你可以这样做编程使用查询变量:
query TestQuery($branch: GitObjectID) {
search(first: 1, type: REPOSITORY, query: "language:C") {
edges {
node {
... on Repository {
object(expression: "master:", oid: $branch) {
... on Tree {
entries {
oid
name
type
}
}
}
}
}
}
}
}
先从null
值,并从那里走。
我很高兴看到你的问题,这是因为你的例子解决了我在使用GraphQL时遇到的问题,因为我认为我知道解决方案。可悲的是,当我试图使用“片段”时,它抛出了一个关于“片段[片段名称]包含无限循环的错误,所以现在我也焦急地等待着这个问题的答案。 – REW