【问题标题】:How can I determine which Pull Request a commit belongs to using the GitHub API?如何使用 GitHub API 确定提交属于哪个 Pull Request?
【发布时间】:2015-10-23 16:38:14
【问题描述】:

给定一个提交 SHA,我想使用 GitHub API 来确定它属于哪个拉取请求。

GitHub 在commit page 上显示此信息:

但是,此信息不在该提交的 API 响应中:

curl --silent 'https://api.github.com/repos/hammerlab/pileup.js/commits/ee49f07dba3821109b3cf45404446f434a897558' | grep 328
(nothing)

是否可以使用 GitHub API 获取此信息?我意识到我可以为 repo 抓取所有最近的 PR,但这似乎效率低下。

对于上下文:我想通过 Travis-CI“推送”作业执行此操作,我可以访问 SHA,但没有任何关于它是否是拉取请求的一部分的信息。

【问题讨论】:

    标签: travis-ci github-api


    【解决方案1】:

    可以使用支持此功能的Search API

    https://help.github.com/articles/searching-issues/#search-by-the-commit-shas-within-a-pull-request

    例如:

    https://api.github.com/search/issues?q=ee49f07dba3821109b3cf45404446f434a897558
    

    返回一个结果,即这个拉取请求:

    https://api.github.com/repos/hammerlab/pileup.js/issues/328
    

    【讨论】:

    • 它可以工作,但是对于某些提交哈希,这会输出包含相同提交哈希的多个拉取请求。检查此链接[api.github.com/search/… 在这种情况下,我们应该将什么拉取请求视为合并该提交的拉取请求
    • @KasunSiyambalapitiya 我会考虑首先合并的那个。您也可以通过 API 获取该信息(合并拉取请求时)。
    【解决方案2】:

    似乎可以在 API v.3 中使用这个新功能:

    https://developer.github.com/v3/repos/commits/#list-pull-requests-associated-with-a-commit

    此 URL 现在重定向到:

    https://docs.github.com/en/rest/reference/repos#list-pull-requests-associated-with-a-commit

    这是语法:

    GET /repos/:owner/:repo/commits/:commit_sha/pulls
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-09
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 2020-11-13
      • 2022-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多