GitHub:获取日期范围内存储库中已更改文件的数量

时间:2019-05-07 15:23:56

标签: github-api github-graphql

我试图获取在给定日期范围内已更改的文件数(每月报告)。

我可以使用GitHub的API V4轻松获得提交计数。我修改了该查询,以在每次提交中也获得了更改文件的计数,并且我认为可以手动对其进行汇总。这适用于小批量。供参考,这是我正在使用的查询:

query ($owner: String!, $name: String!, $pagedEndCursor: String, $sinceTS: GitTimestamp!, $untilTS: GitTimestamp!) {
  repository(owner: $owner, name: $name) {
    refs(first: 100, refPrefix: "refs/heads/", after: $pagedEndCursor, orderBy: {field: TAG_COMMIT_DATE, direction: DESC}) {
      totalCount
      edges {
        node {
          name
          target {
            ... on Commit {
              history(first: 100, since: $sinceTS, until: $untilTS) {
                totalCount
                nodes {
                  changedFiles
                  committedDate
                }
                pageInfo{
                  hasNextPage
                }
              }
            }
          }
        }
      }
      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}

我所面临的问题是我们的团队广泛使用分支机构,因此我们有许多存储库,其中包含100多个分支机构,这就是为什么我在遍历分支机构时内置分页的原因。尽管在给定月份内有100个分支提交的机会很小,但是单个分支在给定月份中可能有100个以上的提交肯定是有可能的。

我想在历史记录中进行分页(我离开了最里面的pageInfo来显示位置),但是我认为跨多个内部对象进行分页不起作用。

我可以多次执行此操作,在该查询中运行查询以获取给定月份中发生更改的分支的列表,然后针对每个分支运行单独的查询以获取更改的文件数,但是似乎违反了使用GraphQL的目的。

是否还有其他方法可以获取存储库中所有分支的日期范围内更改的文件数?

0 个答案:

没有答案