【问题标题】:Branches and Pull Requests are not visible in SonarQube dashboard?分支和拉取请求在 SonarQube 仪表板中不可见?
【发布时间】:2021-07-14 21:07:57
【问题描述】:

我正在使用 SonarQube 的开发者版 (8.4) 和 GitHub(社区版 - 非企业版)来分析基于 Maven 的 java 项目。我拿了这个sample project 并按照this guide 中提到的所有步骤进行设置。

我有一个从同一教程复制的示例 build.yaml 文件,用于 Maven 项目,如下所示:

name: Build
on:
  push:
    branches:
      - master
      - develop
  pull_request:
    types: [opened, synchronize, reopened]
jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0  # Shallow clones should be disabled for a better relevancy of analysis
      - name: Set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 11
      - name: Cache SonarQube packages
        uses: actions/cache@v1
        with:
          path: ~/.sonar/cache
          key: ${{ runner.os }}-sonar
          restore-keys: ${{ runner.os }}-sonar
      - name: Cache Maven packages
        uses: actions/cache@v1
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2
      - name: Build and analyze
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}  # Needed to get PR information, if any
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
          SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
        run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar

每当推送新代码时,都会进行分析。我也可以在 github 的仪表板中看到 PR 装饰和检查 PR。

但是,除了master 或 SonarQube 仪表板中 Branches & Pull Requests 下的任何 Pull Requests,我没有看到任何其他分支。以下是截图供参考:

分支(只有 master 分支可见。我也有功能和开发分支)

拉取请求

根据 SonarQube 的文档,我应该能够在仪表板中看到多个分支和 PR。

我错过了什么吗?

【问题讨论】:

  • 我猜两者之一。)这是一个不同的回购!或者 2.) SonarQube 由于某种原因没有刷新。也许某处有一个配置应该多久获取一次?您可以尝试在 SonarQube 的仪表板中单击 master 以查看其提交的内容。然后在您的 repo 中找到该提交,您可能会更深入地了解上次刷新 SonarQube 的时间。
  • 我刚刚注意到您说,“每当推送新代码时,都会完成分析。”这是否意味着每当你推动时,SonarQube 就会被触发并尝试一些事情?如果是,那么必须定期刷新才能看到您推送的更新,这意味着我之前的评论不相关。
  • 您是否尝试过这种将拉取请求装饰添加到手动创建的或现有的项目来自guide
  • @SouravAtta 是的,我有。事实上,我删除了 GitHub 存储库和 SonarQube 项目一次只是为了确保一切正常。我也在 build.yaml 文件中添加了开发分支。其他一切都按预期工作,只有项目中的“分支和拉取请求”选项卡无法显示详细信息
  • 您链接的文档在先决条件中提到:“要将拉取请求装饰添加到 GitHub Enterprise 中的检查,您必须运行 GitHub Enterprise 版本 2.15+。”而且你有“社区版”,所以这可能是奇怪行为的原因?

标签: git maven github sonarqube


【解决方案1】:

一般来说,您应该始终查阅文档您的特定版本。在这种情况下:PR Decoration for SonarQube 8.4

(根据那个文档,如果你指的是“社区版”的 Github.com,它应该被支持,所以不要介意我之前的评论。)

链接in the header of this doc page 提到了在运行 Sonar 时应传递给 Maven 的以下键:sonar.pullrequest.keysonar.pullrequest.branchsonar.pullrequest.base

示例(灵感来自 here,可能需要一些调整):

 mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.pullrequest.branch=${{ github.event.pull_request.head.ref }} -Dsonar.pullrequest.base=${{ github.event.pull_request.base.ref }} -Dsonar.pullrequest.key=${{github.event.pull_request.number}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-09
    • 2018-12-07
    • 1970-01-01
    • 2021-12-29
    • 2019-06-23
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多