要在 GitLab CI 中获取 Sonar 分析结果,您可以使用以下步骤:
首先,在您的 GitLab 项目中设置一个 SonarQube 服务。这将允许您在 CI/CD 管道中运行 Sonar 分析。
在
.gitlab-ci.yml文件中添加一个 Sonar 分析阶段,如下所示:
sonarqube:
image: sonarsource/sonar-scanner-cli
variables:
SONAR_TOKEN: YOUR_SONAR_TOKEN
SONAR_HOST_URL: https://your-sonarqube-instance.com
script:
- sonar-scanner
在此示例中,我们使用 SonarQube 官方提供的 Docker 映像。
运行 CI/CD 管道并等待 Sonar 分析完成。您可以从 GitLab 控制台查看分析结果。
要获取 Sonar 分析结果作为 JSON 格式,请使用以下命令:
curl -u $SONAR_TOKEN: "$SONAR_HOST_URL/api/issues/search?componentKeys=$CI_PROJECT_PATH&resolved=false" -o sonar-result.json
这将使用 SonarQube API 检索未解决问题列表,并将结果保存到 sonar-result.json 文件中。
- 最后,您可以在 CI/CD 管道中使用 JSON 解析器来处理 Sonar 结果,例如:
# 使用 jq 解析 Sonar 结果
cat sonar-result.json | jq '.issues[] | [.rule, .severity, .component, .message] | @csv'
这将输出 CSV 格式的 Sonar 结果,包括规则名称、严重性、组件和消息。




