【问题标题】:Jenkins pipeline sonarqube quality gate webhook didn't match the configured webhook secretJenkins 管道 sonarqube 质量门 webhook 与配置的 webhook 密码不匹配
【发布时间】:2022-02-16 04:14:50
【问题描述】:

我有一个 jenkins 声明式管道,其中包含一个声纳扫描仪并正在运行。

我在声纳中配置“强制用户身份验证”设置时遇到问题。配置完成后,我在 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 中,任务的状态为 SUCCESSFUL,对我来说,这就像 Jenkins 无法从 sonarqube 中检索成功状态,我不明白为什么,因为扫描仪运行良好,我已经查看了日志和我什么都没看到。

可能是什么问题?

【问题讨论】:

    标签: jenkins sonarqube jenkins-pipeline


    【解决方案1】:

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

    检查 Jenkins 配置中“SonarQube 服务器”部分中的“Webhook Secret” - 它应该设置为“None”(当 SonarQube 中未设置秘密时)或匹配 SonarQube 中配置的值(如果有) .

    【讨论】:

    • 就是这样!非常感谢。我选择了这个答案,但由于声誉不足而无法投票。我在高级配置下找到了这个。
    猜你喜欢
    • 2021-05-06
    • 2018-01-23
    • 2020-07-21
    • 2018-12-24
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 2022-11-19
    • 2018-08-06
    相关资源
    最近更新 更多