GitHub 操作:必须将哪些权限分配给 SonarScanner 使用的 GITHUB_TOKEN?

GitHub Actions: Which permissions must be assigned to GITHUB_TOKEN used by the SonarScanner?

根据 SonarQube GitHub Integration 文档,执行 SonarScanner 时必须将 GITHUB_TOKEN 作为环境变量注入。

- name: Build and analyze
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}  # Needed to get PR information, if any
    SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
  run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar

我想授予所需的最低权限。我应该授予令牌哪些权限?

Permissions for the GITHUB_TOKEN.

这个机制让我很困惑。一开始我根本就没有加GITHUB_TOKEN这个环境变量。我的拉取请求已成功构建,但对主分支的分析开始失败。我将令牌配置为手动设置权限,但未授予任何权限(我在工作流文件中省略了 permissions 键)。构建已成功完成。目前我的配置如下所示:

jobs:
  Build:
    # ...
    permissions:
      checks: write
    steps:
      # ...
      - name: Execute SonarScanner
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: ${{ env.MAVEN_CMD }} sonar:sonar -Dsonar.login=${{ secrets.SONAR_TOKEN }}

工作流中使用的另一个操作 (scacap/action-surefire-report@v1) 需要 checks: write 权限。老实说,我不知道为什么需要 GitHub 令牌,但使用这种最小配置它对我有用。


TL;DR: 找我说必须设置token,但是不需要任何权限。