Setting up branch analysis and Pull request decoration is not good documented. Please add examples for the differen SCM systems.
Here my example for Bitbucket Server with Bitbucket Branch Source Plugin:
vars/sonar.groovy
def call(String params = '') {
def sonarParams = params
if (env.BRANCH_NAME.startsWith('PR')) {
sonarParams += " -Dsonar.pullrequest.key=${env.CHANGE_ID} -Dsonar.pullrequest.branch=${env.CHANGE_BRANCH} -Dsonar.pullrequest.base=${env.CHANGE_TARGET}"
} else if (env.BRANCH_NAME != 'master') {
sonarParams += " -Dsonar.branch.target=master -Dsonar.branch.name=${env.BRANCH_NAME}"
}
warnError(message: 'Sonar inspection failed') {
withSonarQubeEnv('FOO') {
withMvn(
pom: "./pom.xml",
options: "${sonarParams} -Dsonar.links.ci=${env.JOB_URL} -Dsonar.userHome=${env.WORKSPACE}/.sonar",
goal: 'sonar:sonar'
)
}
}
}