列出自GraphQL哈希以来的github提交

时间:2020-05-12 18:00:15

标签: github-api github-graphql github-api-v3 github-api-v4

自给定提交哈希以来,我正尝试获取给定git存储库的所有提交,但是我找不到执行此操作的GraphQL方法。我想要的基本上与

相同
git log --pretty=format:%H <hash>..HEAD

我尝试了一些事情,包括:

{
  repository(owner: "vespa-engine", name: "vespa") {
    object(expression: "master") {
      ... on Commit {
        history(until: "2020-05-12T12:00:00Z") {
          nodes {
            oid
          }
          pageInfo {
            endCursor
            hasNextPage
          }
        }
      }
    }
  }
}

但是似乎before中的untilhistory被忽略了。在V3中,可以使用compare API做到这一点:

$ hashes=$(git log --pretty=format:%H a5e31d496d4cb1594cbf55d8d268b8b7a5e0b2c3..HEAD); head -n3 <<< $hashes; echo "..."; tail -n3 <<< $hashes
b43e8090a860bf92b07153a2fd01d95f7fa2e548
feb582188627adb3a2e3ede8c61b3e15cabd1d82
6007048884ea5c222c0ad88862f7cc12992ac336
...
cf185bd2401f435f6d2ff67708f6dd80b0e37b46
009dccdef0dfe4fdf9fd17d5e938fc2877bb537f
503880f98dae838c24fbb6869840108b73684952
$ hashes=$(curl -s https://api.github.com/repos/vespa-engine/vespa/compare/a5e31d496d4cb1594cbf55d8d268b8b7a5e0b2c3...HEAD | jq -r '.commits[] | .sha' | tac); head -n3 <<< $hashes; echo "..."; tail -n3 <<< $hashes
b43e8090a860bf92b07153a2fd01d95f7fa2e548
feb582188627adb3a2e3ede8c61b3e15cabd1d82
6007048884ea5c222c0ad88862f7cc12992ac336
...
cf185bd2401f435f6d2ff67708f6dd80b0e37b46
009dccdef0dfe4fdf9fd17d5e938fc2877bb537f
503880f98dae838c24fbb6869840108b73684952

但是:

  1. 此API返回很多数据,我只需要散列即可
  2. 更重要的是,它仅限于250次提交,我找不到分页的方法。预期的Link header未包含在上述响应中。

0 个答案:

没有答案