2017-10-10 138 views
4

我想使用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 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 

但是,這隻給我目錄內容的第一級,特別是一些結果對象是樹。有沒有辦法調整查詢,以便遞歸地列出樹的內容?

+0

我很高興看到你的問題,這是因爲你的例子解決了我在使用GraphQL時遇到的問題,因爲我認爲我知道解決方案。可悲的是,當我試圖使用「片段」時,它拋出了一個關於「片段[片段名稱]包含無限循環的錯誤,所以現在我也焦急地等待着這個問題的答案。 – REW

回答

2

無法在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值,並從那裏走。