使用GitHub的API获取每次提交(在分支上)添加/删除的代码行?

时间:2019-07-08 19:43:10

标签: github github-api

以下内容获取了项目master分支的提交的原始列表:

https://api.github.com/repos/<organization_name>/<repo_name/commits?page=0&per_page=30

问题1:除了特定的<branchname>,如何才能获得类似的列表?

问题2:上面的提交列表不包含有关每次提交添加/删除的代码行的任何数据(即非常粗略的生产率指标)。有没有办法在查询中获取这些数据?

1 个答案:

答案 0 :(得分:1)

您可以在/commits参数中使用sha={branchname}参数获取特定分支;

  

sha string SHA或分支开始列出提交。默认:存储库的默认分支(通常是主分支)。

https://api.github.com/repos/<org_name>/<repo_name>/commits?sha=<branchName>&page=0&per_page=30

要获取每个提交的每个文件特定的更改,您需要在上述URL的响应中检查每个提交实体的url变量。从该new endpoint call中,您将获得有关该单个提交的更详细的信息。其中的files变量将包含该提交中包含的更改。每个文件都添加和删除了代码。

  

我的回购示例;

     

https://api.github.com/repos/buraequete/orikautomation/commits?sha=master&page=0&per_page=30

     

如果我们第一次提交url

     

https://api.github.com/repos/buraequete/orikautomation/commits/89792e6256dfccc5e9151d81bf04145ba02fef8f

     

其中包含您想要的files变量中的更改作为列表。

"files": [
    {
      "sha": "8aaaa7de53bed57fc2865d2fd84897211c3e70b6",
      "filename": "lombok.config",
      "status": "added",
      "additions": 1,
      "deletions": 0,
      "changes": 1,
      "blob_url": "https://github.com/buraequete/orikautomation/blob/89792e6256dfccc5e9151d81bf04145ba02fef8f/lombok.config",
      "raw_url": "https://github.com/buraequete/orikautomation/raw/89792e6256dfccc5e9151d81bf04145ba02fef8f/lombok.config",
      "contents_url": "https://api.github.com/repos/buraequete/orikautomation/contents/lombok.config?ref=89792e6256dfccc5e9151d81bf04145ba02fef8f",
      "patch": "@@ -0,0 +1 @@\n+lombok.accessors.chain = true"
    },
    ...
]

对不起,但我认为没有办法在原始/commits端点调用中获取每个文件的更改,您必须进行多次调用...