有效检索所有GitHub提交的统计信息

时间:2016-11-19 16:45:16

标签: github-api

是否有更有效的方法来获取与提交相关的添加/删除计数,而不是循环每次提交并调用:

GET /repos/:owner/:repo/commits/:sha

https://developer.github.com/v3/repos/commits/

得到:

"stats": {
   "additions": 104,
   "deletions": 4,
   "total": 108
},

数据?

不幸的是提交端点:

GET /repos/:owner/:repo/commits

包含有关每次提交的大量数据,但不包含此详细信息,这意味着要获得大量额外的API调用。

2 个答案:

答案 0 :(得分:3)

每当您需要多个GitHub API查询时,请检查 GraphQL introduced by GitHub last Sept. 2016)是否允许您在一个查询中获取所有这些提交

您可以看到examples here并申请GitHub GraphQL early access,但这是唯一可以获得的方式:

  • 所有提交中的所有统计信息(统计信息)
  • 在一个查询中

答案 1 :(得分:0)

现在可以使用commit stats获取GraphQL APIadditionsdeletions& changedFiles次):

获取默认分支上第一次提交100次的提交统计信息:

{
  repository(owner: "google", name: "gson") {
    defaultBranchRef {
      name
      target {
        ... on Commit {
          id
          history(first: 100) {
            nodes {
              oid
              message
              additions
              deletions
              changedFiles
            }
          }
        }
      }
    }
  }
}

Try it in the explorer

要获取前10个分支的提交统计信息,请为每个分支的100个首次提交获取:

{
  repository(owner: "google", name: "gson") {
    refs(first: 10, refPrefix: "refs/heads/") {
      edges {
        node {
          name
          target {
            ... on Commit {
              id
              history(first: 100) {
                nodes {
                  oid
                  message
                  additions
                  deletions
                  changedFiles
                }
              }
            }
          }
        }
      }
    }
  }
}

Try it in the explorer