我正在尝试将我在 Sonarqube 的主要分支从 更改为 ,master因为我在过去的几个月mainline里一直在进行分析。mainline
Sonar 社区下面的这篇文章说我必须删除mainline分支然后重命名master分支。这种方法的问题是我会失去我不想做的所有历史记录。
https://community.sonarsource.com/t/how-to-change-the-main-branch-in-sonarqube/13669/37
是否有办法将主分支更改为另一个分支而不丢失所有扫描历史记录?
使用:开发者版 - 版本 9.2.1
sonarqube sonarqube-web sonarqube-scan sonarqube-api sonarcloud
我面临一些声纳云警告的问题,这些警告在最近的将来不会得到解决(现在应该被禁用)。
这些警告是由 sonarcloud 在 CI 构建过程中发出的。没有任何本地分析器。有没有办法在项目、文件、类和/或方法级别上抑制源代码中的某些特定警告?
官方文档没有太大帮助,至少我没有找到解决方案。
sonarcloud是否尊重某些人
#pragma warning disable S3881
Run Code Online (Sandbox Code Playgroud)
或其他基于属性的方法或一些全局设置。
我有一个 Mono 存储库,我所有的基于 Spring Boot 的微服务都驻留在其中。
我知道如何为 poly repo 配置 SonarQube 分析,但想知道如何在 monorepo 上进行 sonarqube 分析以及 Soanarqube 如何识别 mono repo 中的不同项目。
Sonarqube 是否有不同类型的配置?
嗨,我正在使用 Travis CI 为Maven应用程序自动化 SonarCloud 上的代码覆盖率。
现在,在sonar:sonar本地运行该命令会在 SoundCloud 上提交报告,我可以使用 Branch 看到它,如下所示master
现在我还配置了.travis.yml文件以在每次构建时自动将报告推送到SoundCloud,如下所示
但是当构建由 Travis CI 触发时,它会失败并出现以下错误
[INFO] Load project branches
[INFO] Load project branches (done) | time=114ms
[INFO] Load project pull requests
[INFO] Load project pull requests (done) | time=116ms
[INFO] Load branch configuration
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 27.884 s
[INFO] Finished at: 2019-05-19T16:47:23Z
[INFO] Final Memory: 93M/496M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal …Run Code Online (Sandbox Code Playgroud) 我也在stackoverflow上搜索了很多关于这个问题的信息,但我没有找到解决方案。
直到昨天 Travis 可以毫无问题地执行声纳:声纳,但今天它不起作用,它给了我这个错误:
--- sonar-maven-plugin:3.7.0.1746:sonar (default-cli) @ progetto ---
[INFO] User cache: /home/travis/.sonar/cache
[INFO] SonarQube version: 8.0.0
[INFO] Default locale: "en_US", source code encoding: "UTF-8"
[INFO] Load global settings
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:38 min
[INFO] Finished at: 2019-11-08T15:56:40Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar (default-cli) on project progetto: Not authorized. Please check the properties sonar.login and sonar.password. -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
所以我改变了我的 SONAR_TOKEN 创建一个新的。但什么都没有改变。这是我的 Travis 文件:
language: java
jdk: openjdk8
env: …Run Code Online (Sandbox Code Playgroud) 我在 SonarCloud 中查看代码分析的详细信息时遇到问题。
我正在工作的是带有 Coverlet 的 .Net Core 应用程序。我确实看到结果已上传并且覆盖范围已显示。但是,我看不到仪表板,“代码”选项卡不显示代码,并且“度量”也不提供详细信息。
我的 Github 项目已链接,正如我所看到的,结果已上传。我想知道为什么我看不到代码和详细的覆盖范围。我不熟悉 .NET 代码,并且 SonarQube 已经安装在其他项目中,所以我想知道我是否忘记了什么。我可以看到针对特定分支的两个 PR 构建的结果。
所以我的问题是如何查看细节。难道只有我合并后它才显示在主分支上吗?
这是一个 .NET Core 项目。我对 .NET Framework 应用程序也有同样的问题。
我正在遵循sonarcloud.io上的入门说明,以从计算机执行Maven的SonarQube扫描仪:
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar \
-Dsonar.host.url=https://sonarcloud.io \
-Dsonar.organization=ron190-github \
-Dsonar.login=9...e
Run Code Online (Sandbox Code Playgroud)
手动执行有效:
[INFO] ANALYSIS SUCCESSFUL, you can browse https://sonarcloud.io/dashboard/index
/jsql-injection:jsql-injection
Run Code Online (Sandbox Code Playgroud)
但是,当我准备使用Travis CI进行自动化时,它会失败Not authorized. Please check the properties sonar.login and sonar.password.:
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli) on project jsql-injection: Not authorized. Please check the properties sonar.login and sonar.password. -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
如果我添加sonar.login到该mvn命令,那么它将起作用:
language: java
sudo: false
install: true
addons:
sonarcloud:
organization: "ron190-github"
token:
secure: "v...s="
jdk:
- oraclejdk8
script:
# …Run Code Online (Sandbox Code Playgroud) 据我所知,我必须从 GUI 配置所有 SonarQube 设置并将其存储在数据库中?
是否有任何功能可以将我的 SonarQube 配置定义为代码并将其部署到我的 SonarQube 服务器?我想在 SonarQube 中自动创建新项目,这样我们每次添加新应用程序时就不需要手动过程了。
实现此目的的另一种方法是,如果应用程序运行时不存在声纳项目,Sonarscanner 或 Jenkins 插件可以为应用程序创建声纳项目。然后我可以在应用程序存储库中的配置中描述应用程序声纳项目的所有设置。这可能吗?对此有什么最佳实践吗?
我很失望 Sonar 仍然不支持这一点,但这就是我在 Jenkins 中做到这一点的方式:
httpRequest consoleLogResponseBody: true,
httpMode: 'POST',
contentType: 'APPLICATION_FORM',
validResponseCodes: '100:400', // catch 400 which is returned if project exists already
customHeaders: [[
maskValue: true,
name: 'Authorization',
value: "Basic ${javax.xml.bind.DatatypeConverter.printBase64Binary((sonar_cloud_token + ':').getBytes())}"
]],
url: "https://sonarcloud.io/api/projects/create",
requestBody: "name=${repo_name}&project=${workspace}_${repo_name}&organization=${workspace}
Run Code Online (Sandbox Code Playgroud)
特别是对于 Bitbucket 和声纳云,仍然存在一个非常令人讨厌的手动步骤,您必须从 BitBucket UI 将存储库链接到声纳云。用户也找到了一个完全没有文档记录、没有官方支持的 API 端点来执行此操作:
我有一个在 Azure Devops CI/CD 管道上运行的 ASP.NET MVC5 Web 应用程序,其中包括用于静态代码分析的 SonarCloud。我试图忽略所有 3rd 方文件,例如 Javascript/JQuery 库,它们会引发大量“错误”和“代码味道”。
我想专门隐藏这些文件:
INFO: 4/9 files analyzed, current file: BookingSystem/Scripts/jquery-3.3.1.js
Run Code Online (Sandbox Code Playgroud)
我在“管理”>“常规设置”>“分析范围”>“文件”>“源文件排除”中尝试了各种 sonar.exclusions,但没有一个隐藏特定文件夹:
sonar.exclusions=**\Scripts\**
sonar.exclusions=Scripts\**
sonar.exclusions=**\Scripts**
sonar.exclusions=**\BookingSystem\Scripts\**
Run Code Online (Sandbox Code Playgroud)
谁能告诉我使用哪种格式?
我需要对 Snyk 和 Sonarcloud/Sonarqube 的特性和功能进行比较,我唯一能找到的是速度比较:
https://snyk.io/blog/sast-tools-speed-comparison-snyk-code-sonarqube-lgtm/
....有谁知道两者之间是否有特性和功能的比较?如果是的话,请告诉我去哪里看?
预先非常感谢您对此提供的任何帮助。