首页 > 其他分享 >Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性

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

时间:2023-04-27 14:23:46浏览次数:42  
标签:Pipeline SonarQube 代码 DevOps SonarCloud Azure

一,引言

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

github:https://github.com/yunqian44/Standard.Tool.Platform

作者:Allen 

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

标签:Pipeline,SonarQube,代码,DevOps,SonarCloud,Azure
From: https://www.cnblogs.com/AllenMaster/p/17349780.html

相关文章

  • python+playwright 学习-58 Jenkins上使用 Pipeline 运行 playwright 自动化脚本
    前言Dockerfile.focal可用于在Docker环境中运行Playwright脚本。这些镜像包括在Docker容器中运行浏览器所需的所有依赖项,还包括浏览器本身。playwright在linux系统上目前只支持Ubuntu系统的部分版本,centos和debian系统上是没法运行的。jenkins环境准备需安装2个跟d......
  • Release Pipeline
    RequirementsWhencodePRmergedintoenvbranch,canbuildthecodeandpushimageintoimageregistryautomaticallyandefficientlyWhennewimagebeenpushedintoimageregistry,candetectthechangeandupdatetheimageofservicerunningink8s......
  • Microsoft Azure 解决方案: 了解和合理规划数据存储
    51CTO博客地址: https://blog.51cto.com/14669127Azure培训视频地址: https://space.bilibili.com/2000820534Gartner研究副总裁MichaelWarrilow表示:“由于新冠疫情的爆发,企业机构为了应对新的业务和社会变化才在过去两年开始加快云迁移速度。未能跟上云迁移速度的技术和服务提供......
  • 【Azure 应用服务】启用 Managed Identity 登录 SQL Server 报错 Managed Identity au
    问题描述在AppService中启用Identity后,使用系统自动生成Identity。使用如下代码连接数据库SQLServer:SQLServerDataSourcedataSource=newSQLServerDataSource();dataSource.setServerName("yoursqlservername.database.chinacloudapi.cn");//Replacewit......
  • Sitecore10 Demo演示环境Azure一键部署(Step By Step Guide to installing Sitecore10
    本文演示SitecoreXPSingle(XP0)在Azure上的一键部署,即“30分钟生成Sitecore演示环境”的一环。关于XP(即SitecoreExperiencePlatform)roles的相关介绍移步XPSingle配置主要用来开发和测试:FourSitecoreroles:ContentDelivery,ContentManagement,Processing,andRepo......
  • [MLIR] CodeGen Pipeline总结
    参考资料:[MLIR]CodeGenPipeline总结-知乎(zhihu.com)本文主要以tensorflow为例,介绍了其接入MLIR后的CodeGen过程,以及简要分析了一些现在常用的CodeGenpipeline。本文是本人在结合博客(CodegenDialectOverview-MLIR-LLVMDiscussionForums)以及相关资料而写......
  • redis之哈希类型-列表类型-集合类型-有序集合-慢查询-pipeline-发布订阅-Bitmap位图-H
    目录redis之哈希类型-列表类型-集合类型-有序集合-慢查询-pipeline-发布订阅-Bitmap位图-HyperLogLog-GEO地理位置昨日内容回顾今日内容详细1哈希类型2列表类型3集合类型4有序集合5慢查询6pipeline与事务7发布订阅8Bitmap位图9HyperLogLog10GEO地理位置redis之哈希类型......
  • 哈希类型 列表类型 集合类型 有序集合 慢查询 pipeline与事务 发布订阅 Bitmap位图 Hy
    昨日回顾#1redis介绍 -特性#速度快:10wops(每秒10w读写),数据存在内存中,c语言实现,单线程模型#持久化:rdb和aof#多种数据结构:5大数据结构BitMaps位图:布隆过滤器本质是字符串HyperLogLog:超小内存唯一值计数,12kbHyperLogLog本质是......
  • 使用pipeline执行命令遇到redis.Nil的坑
    参考项目kratos_rockscacheredis数据准备关键代码特别注意,使用pipeline的Exec方法,一定要判断一下redis.Nil这个错误:~~~......
  • 29、Pipeline Job进阶之部署应用至Kubernetes集群
    PipelineJob进阶之部署应用至Kubernetes集群在jenkins上的k8s云节点,在原来maven-and-docker模板的基础之上,添加容器也可以添加pod模板,通过继承的方式来实现maven-docker-kubectl方式来定义添加podtemplate添加容器:使用kubesphere/kubectl:latest镜像安装插件用于认证到k8s集群之......