Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性

azure,devops,pipeline,集成,sonarqube,维护,代码,质量,安全性 · 浏览次数 : 308

小编点评

**引言** * SonarQube 是一个自动代码审查工具,用于检测代码中的错误、漏洞和代码问题。 * SonarQube 可与现有的工作流程集成,以实现跨项目分支和拉取请求的持续代码检查。 * SonarQube 与 Azure DevOps 的集成允许我们在 Azure DevOps 存储库中维护代码质量和安全性。 **Azure DevOps 系列** 1. **Azure DevOps(一)基于 Net6.0 的 WPF 程序如何进行持续集成、持续编译** * Azure DevOps 使用 .NET 6.0 的 WPF 程序进行持续集成和持续编译。 * 在 Visual Studio Marketplace 获取和安装 SonarCloud 扩展。 2. **Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性** * 在 Azure Pipeline 中添加 Sonar 的 Task。 * 在 Sonar 的 Task 中配置与 Azure Pipeline 的集成。 3. **Azure DevOps(三)Azure Pipeline 自动化将程序包上传到 Azure Blob Storage二** * 在 Visual Studio Pipeline 中添加 Sonar 的 Task。 * 将代码包上传到 Azure Blob Storage二。 * 设置代码分析参数并执行 Pipeline。 **三,结尾** * 使用 SonarQube 分析项目代码代码的实验全部过程已经完成了。 * 可以多多操作练习,以提高代码质量。

正文

一,引言

  对于今天所分析的 SonarQube,首先我们得了解什么是 SonarQube ? SonarQube 又能帮我们做什么?我们是否在项目开发的过程中遇到人为 Review 代码审核规范?带着以上问题,开始今天的分析内容吧 !!!

1)什么是 SonarQube ?

SonarQube 是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码问题。

2)SonarQube 能帮助我们做什么?

它可以与我们现有的工作流程集成,以实现跨项目分支和拉取请求的持续代码检查。

SonarQube 与 Azure DevOps 的集成允许我们在 Azure DevOps 存储库中维护代码质量和安全性。同时支持 Azure DevOps Server (本地)和 Azure DevOps Services (云端)。在 Azure Pipelines 作业中运行的 SonarQube 扩展可以自动检测正在构建的分支或拉取请求。

重点:SonarQube 也有版本的区分

  SonarQube Cloud:Saas 化的产品,托管在 AWS 上的,无需担心安装和维护

  SonarQube Server:SonarQube 服务和数据库都是需要我们安装到自己的服务器或者云端服务器,这就需要我们自行维护

两种产品基本上都涵盖了支持多种语言的代码分析,共享相同的底层静态分析引擎来捕获错误,漏洞等。那么让我们正式开始今天的内容

--------------------Azure DevOps 系列--------------------

1,Azure DevOps(一)基于 Net6.0 的 WPF 程序如何进行持续集成、持续编译

2,Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性

3,Azure DevOps(三)Azure Pipeline 自动化将程序包上传到 Azure Blob Storage

二,正文

1,创建 SonarQube 项目

登录 sonarCoud.io 选择 Azure DevOps 登录

点击 “+” 选择 “Analyze new project” 创建新项目

选择本次实验的代码项目,点击 “Set Up“ 进行设置

2,配置与 Azure Pipeline 的集成

点击 ”With Azure DevOps Pipelines“ 开始配置

首先需要在 Visual Studio Marketplace 获取、安装 SonarCloud 扩展

选择 "Pipelines =》“”Service connection" ,点击 “New service connection” 添加新的服务连接

在我们的新的 SonarCloud service connection 输入以下参数,参数也来源于刚刚在 sonarcloud 上创建好的项目

点击 “Verify and save”

接下来就是 Pipeline 中添加 Sonar 的 Task了,打开已经编辑好的 Azure Pipeline 的 YAML 文件

1)搜索添加 “Prepare Analysis Configuration”

输入以下参数

SonarCloud Service Endpoint 选择:“SonarCloud”

Organization 选择:“SonarQube_Test”

Project Key:“AllenMaster_NetCore_WPF_Sample”

Project Name:"NetCore_WPF_Sample"

点击 ”Add“ 

Project Key 可以在 SonarCloud 的项目配置中可以找到

2)搜索添加 “Run Code Analysis” 并添加 Task

 3)搜索添加 “Publish Quality Gate Result” 并添加 Task

配置完成后,点击 ”Save“ 保存 YAML 文件,并将修改内容提交到 master 分支

最后,我们可以尝试运行 Pipeline,并在 SonarCloud 上查看代码分析报告

报告了主要有以下几个个指标

Bugs :代码中的重大 bug 错误,可能影响到项目的正常运行。

Code Smells:无关紧要的编码不规范问题,建议改正,点开详情可以看到规范的使用案例。

Vulnerabilities:项目中存在的漏洞,需要进行改正。

Coverage:项目的单元测试情况。

Duplications:项目中的重复代码块,建议重构。

三,结尾

  使用 sonarqube 分析项目代码代码的实验全部过程已经完成了。大家也多多操作练习,本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还希望多多包涵,并且指出不足之处。

作者:Allen 

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

与Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性相似的内容:

Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性

一,引言 对于今天所分析的 SonarQube,首先我们得了解什么是 SonarQube ? SonarQube 又能帮我们做什么?我们是否在项目开发的过程中遇到人为 Review 代码审核规范?带着以上问题,开始今天的分析内容吧 !!! 1)什么是 SonarQube ? SonarQube 是一

Azure DevOps(三)Azure Pipeline 自动化将程序包上传到 Azure Blob Storage

一,引言 结合前几篇文章,我们了解到 Azure Pipeline 完美的解决了持续集成,自动编译。同时也兼顾了 Sonarqube 作为代码扫描工具。接下来另外一个问题出现了,Azure DevOps 由于有人员限制,项目上不能给非开发人员或者外包成员开权限,这个时候就需要将编译好的程序包上传到公

Azure DevOps Server 设置项目管理用户,用户组

一,引言 Azure DevOps Server 搭建完成后,关于如何进行项目管理,项目成员管理等,我们接着上一篇文章,继续讲解 Azure DevOps Server 的用户,用户组。首先,我们需要明白 Azure DevOps Server 有哪些登录方式 1)Azure DevOps Serv

Azure DevOps Server 入门实践与安装部署

一,引言 最近一段时间,公司希望在自己的服务器上安装本地版的 Azure DevOps Service(Azure DevOps Server),用于项目内的测试,学习。本着学习的目的,我也就开始学习在测试服务器上安装 Azure DevOps Server 2022 Express 以及测试的 D

Azure DevOps Server 用户组加入 Azure AD Domain Service 管理用户

一,引言 今天我们继续讲解 Azure DevOps Server 的内容,对于管理用户组除了在 Azure DevOps Server 服务器上添加管理员方式外,还有没有其他方式,Azure DevOps 需要加入Azure ADDS 服务域后,Azure DevOps Server 的管理员组是

Azure DevOps(一)基于 Net6.0 的 WPF 程序如何进行持续集成、持续编译

一,引言 我们是否正在为如何快速的编译、部署客户端应用程序而烦恼?这也是博主最近遇到的问题。目前博主所在公司主要做项目级的定制化开发,多以 C/S 架构的 WPF 程序为主,每次到了协助开发团队给实施团队编译好的要测试程序包时,就会出现多人协助,编译、打包好的二进制程序包 pull 最新代码 ,以及

Azure Function 时区设置

一,引言 Azure Function 上的默认使用UTC 运行程序,我们在获取时间,或者通过时间执行某些逻辑时,返回UTC 时间,导致业务数据不正常,由于 Azure Function 是微软提供的 IaaS 托管服务,我们无法登录服务器来修改时区,那么我们今天将来实践操作,如何通过配置达到更改

【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)

介绍一个简单的工具,用于将Redis数据从一个redis端点复制到另一个redis端点,基于原始存储库转换为.NET 8:https://github.com/LuBu0505/redis-copy-net8

【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)

在前一篇文章中,我们是把.NET 8应用读取SSL证书(X509)示例部署在App Service Windows环境中,那么如果部署在Linux环境,以及Linux Container中呢? 根据前文中的第一种方法,直接在把证书文件包含在源文件中,通过相对路径读取证书文件的方式,经测试,可以正常工

【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)

在使用App Service服务部署业务应用,因为有些第三方的接口需要调用者携带TLS/SSL证书(X509 Certificate),在官方文档中介绍了两种方式在代码中使用证书: 1) 直接使用证书文件路径加载证书 new X509Certificate2 2) 从系统的证书库中通过指纹加载...