我想在PR中列出修改过的文件,我尝试了一些解决方案,但是我只能在上次提交到远程的提交中访问修改过的文件。
示例:
因此,在此示例中,我想获得PR中所有新提交的文件列表。
代码:
def changeLogSets = currentBuild.rawBuild.changeSets
for (int i = 0; i < changeLogSets.size(); i++) {
def entries = changeLogSets[i].items
for (int j = 0; j < entries.length; j++) {
def entry = entries[j]
def files = new ArrayList(entry.affectedFiles)
for (int k = 0; k < files.size(); k++) {
def file = files[k]
print file.path
}
}
}
答案 0 :(得分:0)
使用Git插件(如果尚未安装)。然后是这样的:
git diff --name-status $GIT_PREVIOUS_SUCCESSFUL_COMMIT..$GIT_COMMIT > allchanges
这将为您提供自上次成功构建以来的所有更改的列表。
答案 1 :(得分:0)
我已经使用git命令找到了解决方案:
/**
* Compares the current branch and target branch and extract the changed files.
*
* @return the PR changed files.
*/
def getPRChangelog() {
return sh(
script: "git --no-pager diff origin/${params.target} --name-only",
returnStdout: true
).split('\n')
}