首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用github api从拉请求号获取拉请求合并提交沙

使用github api从拉请求号获取拉请求合并提交沙
EN

Stack Overflow用户
提问于 2014-03-11 17:00:19
回答 2查看 8.4K关注 0票数 12

我正在尝试使用github (通过githubot https://github.com/iangreenleaf/githubot)从拉请求号获得一个拉请求合并提交沙。

我能够得到正确的响应(例如,在“获取单个拉请求”:https://developer.github.com/v3/pulls/下面),但是merge_commit_sha给出了这个错误:

代码语言:javascript
复制
fatal: bad object 304fc816f33f808080c9c87895eea2d66081d373

当我比较github上的2页时,我看到的是来自提交页面的两个merge_commit_sha,但我看到的是与拉请求合并页面不同的提交沙。两个父级是相同的,但是合并提交是不同的。从api调用返回的一个不起作用,但另一个让我恢复拉请求提交

代码语言:javascript
复制
git revert -m 1 commit_sha

下面是一些屏幕截图示例

这就引出了两个问题:-这两个提交沙之间的区别是什么,为什么只有一个工作来恢复拉请求?

  • 如何使用github获得合并拉请求提交sha?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-12 03:35:53

GitHub具有已弃用merge_commit_sha属性,因为它令人困惑。正如他们所描述的这里

代码语言:javascript
复制
 The merge_commit_sha attribute holds the SHA of the test merge commit

这意味着GitHub创建了一个特殊的分支,它们在其中合并主服务器和拉请求分支,而merge_commit_sha指向代理合并提交,但是在本地回购中没有它。您必须获取特殊的pull/<pull_request_id>/merge分支来查看提交。

好的是在合并拉请求之前可以这样做。像Jenkins GitHub拉出请求生成器这样的工具利用了这种技术。同时,commit_sha是实际的合并提交,这就是您能够恢复它的原因。

因此,如果还不清楚,merge_commit_sha确实给出了正确的提交sha,但是要使用它,您必须先获取pull/<pull_request_id>/merge分支。为了避免将来的弃用问题,您可以获取前面提到的合并分支的头提交,而不是使用merge_commit_sha

顺便说一句,如果你正在用Hubot构建什么东西,你可能想看看这本书 (无耻的插头)。它包括一个关于GitHub集成的章节。

票数 8
EN

Stack Overflow用户

发布于 2014-03-13 12:52:00

您可以获取拉请求的事件列表,然后找到“合并”事件:

http://developer.github.com/v3/issues/events/#events-1

该事件的commit_id属性将保存合并提交的sha。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22331524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档