git 列出纳入请求的提交

sulc1iza  于 2022-11-27  发布在  Git
关注(0)|答案(3)|浏览(128)

我看到对于拉取请求的提交,最大限制是250,如文档所示:列出拉取请求的提交,如果拉取请求超过250个提交,则建议另一个端点:列出提交
列出提取要求的最多250个认可。若要接收超过250个认可之提取要求的完整认可清单,请使用List commits端点。

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

但是,我不知道如何使用列表提交端点,我可以弄清楚它是否绑定到拉请求。
编辑:想知道,如果我应该依靠git命令代替这里。例如,克隆repo,运行git log来获得所有提交的列表。不是所有的提交都将被推送到拉取请求?
此外,我正在寻找一种方法来查看是否有任何新的提交增量添加到拉取请求,因为它是第一次提出。对于情况下,其中审查意见是工作和添加到现有的拉取请求,在这种情况下,我希望只是验证增量的变化。任何指针或文档如何实现这一点?

aiazj4mn

aiazj4mn1#

您可以使用GET /repos/:owner/:repo/commits/:commit_sha/pulls列出与某个提交关联的拉取请求,这将显示与给定提交关联的拉取请求。这意味着您需要检查每个提交以查看其是否与PR关联。这将创建大量额外的网络流量,因此除非绝对必要,否则我不建议使用此端点查找与PR关联的提交。
我所能看到的为PR寻找新提交的最佳解决方案是在pull请求创建后获取分支的所有提交,您需要GET PR,拉出created_at字段,并使用commits端点从分支中检索提交,并且将PR的created_at字段用于提交请求主体中的since字段并指定目标分支。

lpwwtiir

lpwwtiir2#

github documentation指示如何在本地检查拉取请求:
在远程存储库上,拉取请求的当前“活动提交”存储在refs/pull/<id>/head下;当合并请求被合并时,在refs/pul/<id>/merge处出现另一个ref。
引用文件:您可以在本地副本上提取单个合并请求:
1.根据提取请求的ID号获取对提取请求的引用,在流程中创建一个新分支。

$ git fetch origin pull/ID/head:BRANCHNAME

现在您可以比较BRANCHNAMEmaster(*)来查看合并请求的提交列表:

git log master..BRANCHNAME
git rev-list master..BRANCHNAME

请注意,您可以选择将pull/ID/head提取到某个ref而不是分支中:

git fetch origin pull/ID/head:refs/remotes/origin/pr/ID
# now the pr appears as 'origin/pr/ID'

(*)如果目标分支不是master,则需要以其他方式获取此信息,例如从API获取。
您还可以将refspec设置为自动获取所有合并请求;参见例如X1 E1 F1 X:
在.git/config文件中找到github remote的部分,它看起来像这样:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:joyent/node.git

现在将fetch = +refs/pull/*/head:refs/remotes/origin/pr/*这一行添加到这一节中。显然,更改github url以匹配您项目的URL。它最终看起来如下所示:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:joyent/node.git
    fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

下一个git fetch将下载所有拉取请求的所有引用(关闭、合并和一起打开)。
我没有看到refspec中表示的拉取请求的 * 历史 *:

  • 您可以使用上面的refspec设置一个repo的克隆,
  • 以及github上的一个钩子,它将在每次对pull请求进行push时通知该克隆,
  • 以便克隆在收到通知时只运行git fetch origin

这样,pull请求的历史记录就会出现在它的reflog中:

git reflog origin/pr/<id>

更直接的道:通过钩子,你可以访问被推送的提交和被更新的拉取请求,这样你就可以设置一些东西来存储拉取请求的历史。

brgchamk

brgchamk3#

GitHub CLI可以列出PR提交。很方便,CLI已经预先安装在GitHub Actions runner上。
第一个

相关问题