2024-05-21 03:53:38 发布
网友
我计划为Sphinx文档系统插件构建一个插件,该插件显示对文档页面做出贡献的人员的姓名和Github概要文件链接。在
Github在内部有这个特性
是否可以通过Github API获取文件贡献者的Github配置文件链接?注意,提交者的电子邮件还不够,必须能够将它们映射到Github用户配置文件链接。另外请注意,我不需要所有的存储库贡献者—只需要单个的文件贡献者。
如果这是不可能的,那么您可以建议什么样的替代方法(私有API,scraping)从Github中提取这些信息?
为什么需要使用Github API来实现这一点?您只需克隆包并使用git log:
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文件:
html_url
所以你不需要在这里刮掉任何网页。在
下面是一个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); } });
使用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
使用curl&;jq获取此文件前100个参与者的列表,其中没有重复项:
为什么需要使用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/git/git/commits?path=README
其次,在author部分,JSON响应确实包含GitHub概要文件中名为“
^{pr2}$html_url
”的url文件:所以你不需要在这里刮掉任何网页。在
下面是一个very crude jsfiddle来说明,基于javascript摘录:
使用GraphQL API v4,可以使用:
Try it in the explorer
使用curl&;jq获取此文件前100个参与者的列表,其中没有重复项:
^{pr2}$相关问题 更多 >
编程相关推荐