一,引言

  对于今天所分析的 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 维护代码质量和安全性

二,正文

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 维护代码质量和安全性的更多相关文章

  1. 在 k8s 中的 jenkins 集成 sonarqube 实现代码质量检查

    不乱于心,不困于情,不畏将来,不念过往,如此安好 --<不宠无惊过一生>丰子恺 概述 关于在 k8s 中安装 jenkins 和 sornarqube 可以查看下面的文章: 在 k8s 中 ...

  2. Azure DevOps (TFS) 与 Office 集成

    Azure DevOps Service 或者Azure DevOps Server 都支持与office工具集成,实现在office中完成工作项的导入导出和批量修改等功能.用户可以使用自己熟悉的of ...

  3. Azure DevOps (二) 实现Git仓库和钉钉的联动

    上一篇文章中我们提到了azure为我们提供了可自定的web hook,于是我打算实践一下 我假设了一种场景就是,我希望我可以及时收到团队中所有开发人员的代码提交记录,于是乎我想通过web hook打通 ...

  4. [Azure Devops] 使用 Azure Pipelines 实现 CI

    1. 什么是 Azure Pipelines Azure Pipelines 会自动构建和测试代码项目,以将其提供给其他人.它适用于任何语言或项目类型.Azure Pipelines 结合了持续集成 ...

  5. Azure DevOps to Azure AppServices

    Azure DevOps is a complete solution for software development, from planning to building to deploymen ...

  6. [Azure Devops] 使用 Azure Boards 管理工作

    1. 什么是 Azure Boards 通过 Azure Boards 网络服务,团队可以管理其软件项目.它提供了丰富的功能,包括 Scrum 和看板的本地支持.可定制的仪表板和集成报告.这些工具可以 ...

  7. [Azure Devops] 使用 Azure Repos 管理代码

    1. 什么是 Azure Repos Azure Repos 是一组版本控制工具,可用于管理代码.无论您的软件项目是大型项目还是小型项目,都应尽快使用版本控制. 版本控制系统是可帮助您跟踪随时间变化对 ...

  8. jenkins集成sonarQube实现代码质量检查

    1.sonarQube的简介 SonarQube是一款自动化代码审查工具,用于检测代码中的错误.漏洞和代码异味.它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查. 其工作流程如下: ...

  9. 微软Azure DevOps 使用docker 持续集成 dotnet

    azure 环境设置 登录azure 地址 https://dev.azure.com/ 使用微软账号就可以进行登录. 点击右上角新建项目 项目信息,尽量用小写 创建项目 修改默认的dockerfil ...

  10. 持续集成高级篇之Jenkins Pipeline 集成sonarqube

    系列目录 前面章节中我们讲到了Sonarqube的使用,其实Sonarqube获取msbuild结果主要是执行三个命令,开始标记,执行msbuild,结束标记,这些都是命令,是非常容易集成到我们ci流 ...

随机推荐

  1. java相关部分配置

    一.mybatis逆向工程 ① generator.properties jdbc.driverLocation=D:/testDir/Maven/repository_g/mysql/mysql-c ...

  2. IIR数字滤波器的设计

    IIR数字滤波器的设计 Mrakdown常见数学符号 Markdown基础语法 冲激响应不变法 冲激响应不变法:就是用其单位冲激响应序列模仿模拟滤波器的单位冲激响应的抽样值 设计的具体步骤及方法 ​ ...

  3. java中的4种引用和GC Roots

    https://juejin.im/post/5d06de9d51882559ee6f4212?utm_source=gold_browser_extension 1.首先,四种引用如下: Final ...

  4. 执行sql语句,查询sql版本

    SELECT VERSION();

  5. binder机制分析

    1. binder基本概念 1.1 特点 1)binder 是一种基于C/S通信模式的IPC(Inter_Process Communication). 2)在传输过程中近需要一次copy,为发送添加 ...

  6. Python学习笔记--PySpark的相关基础学习(一)

    PySpark包的下载 下载PySpark第三方包: 构建PySpark的执行环境入口对象 PySpark的编程模型 数据输入 对于SparkContext对象里面的成员方法parallelize,支 ...

  7. nginx+lua+openresty+kafka相关问题汇总

    这里使用的是kafka插件是doujiang大佬的https://github.com/doujiang24/lua-resty-kafka,版本为v0.2.0. 应用场景 在nginx转发中,记录非 ...

  8. Flink基本概念及架构

    1.基本概念 无界和有界数据.任何类型的数据都可以形成一种事件流.信用卡交易.传感器测量.机器日志.网站或移动应用程序上的用户交互记录,所有这些数据都形成一种流.数据可以被作为 无界 或者 有界 流来 ...

  9. SpringBoot——模板引擎及原理

    更多内容,前往IT-BLOG 一.模板引擎的思想 模板是为了将显示与数据分离,模板技术多种多样,但其本质都是将模板文件和数据通过模板引擎生成最终的 HTML代码. 二.SpringBoot模板引擎 S ...

  10. Java面试——搜索

    更多内容,前往 IT-BLOG 一.Elasticsearch了解多少 ElasticSearch 是一个基于 Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTfu ...