GitHub项目贡献者的GraphQL查询

7

GitHub现在支持查询贡献者。请更新我的答案。谢谢! - sreenivas
3个回答

2

Github的graphql v4 API似乎不支持贡献者节点,除非你有对存储库的推送访问权限。

当我尝试获取存储库协作者列表时,会出现此错误。

"errors": [
{
  "message": "Must have push access to view repository collaborators.",
  "type": "FORBIDDEN",

2

更新时间: 2020年5月.

Github GraphQL API目前不支持获取存储库的contributors

但是,您可以获取collaborators

query {
  repository(owner: "peek", name: "peek") {
    id
    name

    collaborators(first: 10, affiliation: ALL) {
      edges {
        permission
        node {
          id
          login
          name
        }
      }
    }
  }

  rateLimit {
    cost
  }
}

要查看合作者,您需要对存储库具有推送权限。


18
这是合作者,而不是贡献者。截至2018年4月,您无法通过GraphQL API获取与/repos/$USER/$REPO/contributors相等的v3 API。 - Michael Cramer
这不是解决方案。协作者显示的比我预期的要多。在网页上,对于给定的存储库,我只看到2个协作者,而API返回了更多。 - Marco
我更新了答案以反映当前状态。谢谢Michael和Marco。 - sreenivas

1

最接近获取与v3 REST API url /repos/$USER/$REPO/contributors 等效的方法,我能找到的是:

query {
  repository(owner: "peek", name: "peek") {
    id
    name
    mentionableUsers {
      totalCount
    }
  }
}

它似乎计算了与 Github 用户匹配的仓库中的所有贡献者(最可能是通过他们的电子邮件地址)。


所有观看该仓库的用户都被视为可提及用户。因此,这个列表可能比真正的贡献者多1-3个数量级。 - Ivan Kleshnin
我最近进行了一些元数据收集,你说得对,值得一提的用户数量并不等同于贡献者数量,这可以在仓库首页上看到。然而,在大多数情况下,报告的数字比观察者计数要小,因此这是不同的(该列表似乎是由用户的各种行为填充的,例如参与讨论等)。 - ecp
是的,感谢您的澄清。很遗憾,“mentionableUsers”实际上是什么并没有记录下来。根据我的新探索,这个类别主要包括: 1.所有者(即使从未提交过代码,也具有推送权限的用户) 2.一些贡献者(按照哪些标准不明确) 其他指标还不确定。 - Ivan Kleshnin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接