如何在Jenkins中获取拉请求的差异?

如何在Jenkins中获取拉请求的差异?

问题描述:

比方说,我对一个名为temp的分支提出了拉取请求。我的提交是c1,c2c3。如何获得该公关的差异?如何在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-c3git merge-base temp HEADBgit diff B HEADc1,c2c3的组合差异。

+0

在Jenkins有没有办法知道哪个基地分支是PR? – ryan

+0

@ryan您的资料库在哪里托管?像Github或Gitlab这样的托管服务提供了一套宁静的apis。通过Gitlab的'GET/merge_requests'或者Github的'GET/repos /:owner /:repo/pulls',你可以获得基本分支和许多关于PR的其他细节。其他托管服务也应该有类似的API。 – ElpieKay

+0

@ryan Jenkins插件也应该能够获得基础分支。 – ElpieKay