SonarQube:错误分支分析不能有拉取请求分析参数 'sonar.pullrequest.key'

SonarQube: ERROR a branch analysis cannot have the pull request analysis parameter 'sonar.pullrequest.key'

我是 运行 声纳扫描仪 sonarqube.yml 这段代码来自那里的代码片段

  - name: Run sonarqube
    run: sonar-scanner
      -Dsonar.scm.provider=git
      -Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
      -Dsonar.pullrequest.key=${{ github.event.number }}
      -Dsonar.pullrequest.branch=${GITHUB_HEAD_REF#refs/heads/}
      -Dsonar.pullrequest.base=${GITHUB_BASE_REF#refs/heads/}
      -Dsonar.pullrequest.github.repository=${GITHUB_REPOSITORY}
      -Dsonar.pullrequest.github.endpoint=${GITHUB_API_URL}

创建合并请求后出错

  1. SonarQube 扫描仪版本 4.2.0.1873
  2. SonarQube 服务器版本 9.0.1

我在执行日志中看到剩余的 -Dsonar.pullrequest.key= 等于未定义

Run sonar-scanner -Dsonar.scm.provider=git -Dsonar.login=***  -Dsonar.pullrequest.key= -Dsonar.pullrequest.branch=${GITHUB_HEAD_REF#refs/heads/} -Dsonar.pullrequest.base=${GITHUB_BASE_REF#refs/heads/} -Dsonar.pullrequest.github.repository=${GITHUB_REPOSITORY} -Dsonar.pullrequest.github.endpoint=${GITHUB_API_URL}

在将分支合并到 master 之后它是提交的,在这种情况下 ${{ github.event.number }} 它评估为 null 并且发生错误所以我建议你在这种情况下使用 ${{github.sha}} 即使你可以有条件

"-Dsonar.pullrequest.key=`if [ -z "${{github.event.number}}"  ]; then echo ${{github.sha}}; else echo ${{github.event.number}}; fi`"