Jenkins pipeline sonarqube quality gate webhook 与配置的 webhook 秘密不匹配

Jenkins pipeline sonarqube quality gate webhook didn't match the configured webhook secret

我有一个带有 sonarqube 扫描器的 jenkins 声明管道 运行ning。

我在声纳中配置“强制用户身份验证”设置时遇到问题。配置完成后,我更改了 Jenkins 中的 Sonarqube 服务器配置,选择了正确的管理令牌。

我正在为 jenkins 使用最新版本的 sonarqube 插件。

这是我的声纳 jenkins 声明管道的摘录:

stage('Sonarqube scan') {
            environment {
                scannerHome = tool 'SonarQubeScanner'
                SONAR_API_TOKEN=credentials('sonar_api_token')
            }
            steps {
                withSonarQubeEnv('sonarqube') {
                    sh '''$scannerHome/bin/sonar-scanner \
                    -Dsonar.projectKey=${SONAR_PROJECT} \
                    -Dsonar.projectName=${SONAR_PROJECT} \
                    -Dsonar.exclusions=**test**,**setup.py \
                    -Dsonar.projectVersion=0.4.0 \
                    -Dsonar.python.coverage.reportPaths=${WORKSPACE}/report.xml \
                    -Dsonar.sourceEncoding=UTF-8'''
                }
            }
        }
        stage('Sonarqube quality gate') {
            steps {
                timeout(time: 10, unit: 'MINUTES') {
                    waitForQualityGate abortPipeline: true
                }
            }
        }

我从 jenkins 管道日志中得到以下错误:

The incoming webhook didn't match the configured webhook secret

我已经刷新了 sonarqube 管理员用户令牌,但它仍然不起作用。 我已确保管理员用户可以 运行 analisys 并拥有正确的权限。

编辑:我正在通过 API 创建项目及其 webhook,具有以下卷曲:

curl -s -X POST -u "${SONAR_API_TOKEN}:" "http://sonarurl:9000/api/projects/create" -d "name=${SONAR_PROJECT}&project=${SONAR_PROJECT}&visibility=public" 

curl -s -X POST -u "${SONAR_API_TOKEN}:" "http://sonarurl:9000/api/webhooks/create" -d "name=jenkins&project=${SONAR_PROJECT}&url=https://jenkinsurl:8443/sonarqube-webhook/"

此外,Jenkins(在机器中独立)有证书并通过 https 8443 端口和 sonarqube http 9000(在 docker 中)。

在 Sonarqube 中,任务的状态为成功,对我来说,Jenkins 无法从声纳库中检索成功状态,我不明白为什么,因为扫描仪 运行ning 完美我查看了日志,但没有看到任何内容。

可能是什么问题?

webhook 秘密不同于您在“Sonarqube 扫描”阶段用于提交扫描的 SonarQube API 令牌。看来您在 SonarQube 中的 webhook 秘密配置与 Jenkins 中的不匹配。

检查 Jenkins 配置中“SonarQube 服务器”部分中的“Webhook 秘密”——它应该设置为“None”(当 SonarQube 中没有设置秘密时)或匹配 SonarQube 中配置的值(当有一个时)。