如何在Jenkins中获取拉请求的差异?
问题描述:
比方说,我对一个名为temp
的分支提出了拉取请求。我的提交是c1
,c2
和c3
。如何获得该公关的差异?如何在Jenkins中获取拉请求的差异?
我可以使用git diff HEAD~3 HEAD
但如果我不知道我是3提交temp
提前,我该怎么做?詹金斯怎么办?使用像env.BRANCH_NAME
这样的变量?
答
git diff temp...HEAD
它等同于git diff $(git merge-base temp HEAD) HEAD
。
假设temp
的历史记录为A-B-C-D-E
,并且HEAD
中的一个为A-B-c1-c2-c3
。 git merge-base temp HEAD
是B
和git diff B HEAD
是c1
,c2
和c3
的组合差异。
在Jenkins有没有办法知道哪个基地分支是PR? – ryan
@ryan您的资料库在哪里托管?像Github或Gitlab这样的托管服务提供了一套宁静的apis。通过Gitlab的'GET/merge_requests'或者Github的'GET/repos /:owner /:repo/pulls',你可以获得基本分支和许多关于PR的其他细节。其他托管服务也应该有类似的API。 – ElpieKay
@ryan Jenkins插件也应该能够获得基础分支。 – ElpieKay