获取Github单个文件贡献者

2024-05-21 03:53:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我计划为Sphinx文档系统插件构建一个插件,该插件显示对文档页面做出贡献的人员的姓名和Github概要文件链接。在

Github在内部有这个特性

Contributors

  • 是否可以通过Github API获取文件贡献者的Github配置文件链接?注意,提交者的电子邮件还不够,必须能够将它们映射到Github用户配置文件链接。另外请注意,我不需要所有的存储库贡献者—只需要单个的文件贡献者。

  • 如果这是不可能的,那么您可以建议什么样的替代方法(私有API,scraping)从Github中提取这些信息?


Tags: 文件文档github插件api人员链接系统
3条回答

为什么需要使用Github API来实现这一点?您只需克隆包并使用git log

git log --format=format:%an path/to/file ver1..ver2 |sort |uniq

首先,您可以show the commits for a given file

https://api.github.com/repos/:owner/:repo/commits?path=PATH_TO_FILE

例如:

https://api.github.com/repos/git/git/commits?path=README

其次,在author部分,JSON响应确实包含GitHub概要文件中名为“html_url”的url文件:

^{pr2}$

所以你不需要在这里刮掉任何网页。在


下面是一个very crude jsfiddle来说明,基于javascript摘录:

var url = "https://api.github.com/repos/git/git/commits?path=" + filename
$.getJSON(url, function(data) {
    var twitterList = $("<ul />");
    $.each(data, function(index, item) {
        if(item.author) {
            $("<li />", {
                "text": item.author.html_url
            }).appendTo(twitterList);
        }
    });

get Contributors from a GiHub file

使用GraphQL API v4,可以使用:

{
  repository(owner: "torvalds", name: "linux") {
    object(expression: "master") {
      ... on Commit {
        history(first: 100, path: "MAINTAINERS") {
          nodes {
            author {
              email
              name
              user {
                email
                name
                avatarUrl
                login
                url
              }
            }
          }
        }
      }
    }
  }
}

Try it in the explorer

使用&;获取此文件前100个参与者的列表,其中没有重复项:

^{pr2}$

相关问题 更多 >