Ответ 1
Jenkins предоставляет глобальную переменную с именем CHANGE_ID:
Для многобрендового проекта, соответствующего некоторому изменить запрос, это будет установлено на идентификатор изменения, такой как вытягивание номер запроса.
Эта переменная заполняется только для сборочных запросов pull, поэтому вам нужно отключить сборки ветвей и включить PR-сборки в конфигурации вашего конвейера для источников ветки:
Мой шаг в конвейере выглядит следующим образом:
def PULL_REQUEST = env.CHANGE_ID
stage('Analysis') {
withCredentials([[$class: 'StringBinding', credentialsId: '***', variable: 'GITHUB_ACCESS_TOKEN']]) {
withSonarQubeEnv('Sonar') {
withMaven(maven: 'M3') {
sh "mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar " +
"-Dsonar.analysis.mode=preview " +
"-Dsonar.github.pullRequest=${PULL_REQUEST} " +
"-Dsonar.github.oauth=${GITHUB_ACCESS_TOKEN}"
}
}
}
}