我想使用GraphQL Github API递归列出目录中包含的所有文件。现在我的查询看起来像这样:
{
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
}
}
}
}
}
}
}
}
但是,这只给了我第一级目录内容,特别是一些结果对象又是树。有没有办法调整查询,以便它再次递归列出树的内容?
答案 0 :(得分:3)
无法在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
开始,然后从那里开始。
答案 1 :(得分:1)
工作example
更多信息:https://docs.sourcegraph.com/api/graphql/examples
但是,这可能会在临近功能中改变。例如最新的github版本是v4 https://developer.github.com/v4/explorer/
答案 2 :(得分:0)
{
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
object {
... on Tree {
entries {
name
object {
... on Tree {
entries {
name
}
}
}
}
}
}
}
}
}
}
}
}
}
}