如何在其他人的GitHub存储库中获取协作者的数量?

时间:2016-05-28 05:59:52

标签: github

我尝试使用将pull请求合并到master分支中的提交者数量。但是,我不能考虑拒绝行动。

在GitHub中,有没有办法可以看到其他人的存储库中的协作者数量?

4 个答案:

答案 0 :(得分:4)

GitHub API v3的端点为listing collaborators

GET /repos/:owner/:repo/collaborators

要使用它,您需要进行身份验证,并且您必须是其中一位协作者,否则您会看到:

{
  "message": "Must have push access to view repository collaborators.",
  "documentation_url": "https://developer.github.com/v3"
}

我注意到,当您转到存储库的“问题”部分并按作者或受让人进行过滤时,您会得到a drop-down listing the repository's collaborators。此下拉列表的HTML内容在单独的GET请求中按需加载,例如:

https://github.com/Leaflet/Leaflet/issues/show_menu_content?partial=issues/filters/authors_content
  • 这是 hack 。该URL显然不适合程序化使用。输出是HTML,可能会改变。不保修:使用风险自负。
  • 此URL适用于所有人,您甚至不需要登录GitHub。如果您已登录,则您的帐户将首先显示在列表中。
  • 此URL甚至适用于已禁用“问题”的存储库。

答案 1 :(得分:2)

我有类似的需求。所以,我去了google bigquery上托管的githubarchive数据库,在存储库的主分支上发现了所有PushEvent,CreateEvent和PullRequestEvent的详细信息。由此,我可以得到所有合作者用户的保守估计。合并的每个PullRequestEvent都会生成一个push事件,其中包含合并请求的协作者的名称。但是,如果PullRequestEvent被拒绝,我必须查看谁关闭PullRequest,如果它不是最初创建pull请求的用户,那么该人也是一个协作者。我不确定这是否是最好的方法,但这是我能想到的。

答案 2 :(得分:1)

我遇到了同样的问题-想查找贡献者的数量,但我自己不是贡献者。我最终只是对回购网站的主页进行了获取请求,并抓取了一些贡献者。使用python:

html = requests.get("https://github.com" + js_repo)
e = PyQuery(html.content)
links = e('li')
for link in links:
    if("contributors" in PyQuery(link).html()):
        items = PyQuery(link).items('span')
        for i in items:
            if "Fetching" in str(i):
                contributors = float('nan')
                break
            locale.setlocale( locale.LC_ALL, 'en_US.UTF-8' ) 
            contributors = locale.atoi(i.text())
            print(contributors)

答案 3 :(得分:0)

在您的存储库页面中,点击Settings标签,然后点击Collaborators

网址示例

https://github.com/<username>/<repo name>/settings/collaboration

要查看谁对您不拥有的存储库做出了贡献,您可以转到存储库,点击Graphs,然后点击Members

网址示例

https://github.com/<owner username>/<repo name>/network/members