CODING「DevOps Workshop 学习营地」持续火热进行中!

在这里,你可以轻松实践 DevOps 全流程、体验高效的云端开发、赢取精美礼品——第二期大奖「戴尔 U2718Q 显示器」将于 12 月 3 日开奖,请尽快前往 CODING,完成任务参与抽奖,iPad Pro、HHKB 键盘和 Bose 耳机等礼品均有机会获得!也可以根据 CODING 最佳实践系列文章,探索更多新玩法。

「DevOps Workshop 学习营地」活动链接

https://workshop.coding.io

点击直达,在 PC 端浏览器中打开体验更佳

接下来,开始阅读本篇 CODING 代码管理能力之「代码扫描」最佳实践吧!


CODING 代码扫描通过分析代码仓库中的源代码,能够及时发现其中潜藏的代码缺陷、安全漏洞以及不规范代码。

  • 代码扫描内部目前集成了几十种工具、数千条规则,支持十余种常用开发语言,可在功能、安全、性能、可用性、代码规范等多个维度寻找您代码中的漏洞并提供修改建议。
  • 责任人自动指派问题代码提交人,问题代码修复后可自行关闭,实现问题的闭环处理。
  • 为了便于您的使用,系统内置了多种推荐扫描方案,也支持您按需定制。
  • 支持自动化执行代码扫描:您可以通过设置触发规则,指定合适的时机比如合并请求时自动执行代码扫描。
  • 支持对仓库的多个分支进行全量或增量的扫描。

实践—辅助代码评审

在团队的开发协作中,为把控工程质量,推荐在合并场景中进行代码评审。但仅采用人工审查的方式,往往需要耗费大量时间与精力,使用代码扫描可自动扫描源分支生成扫描结果,并根据扫描结果自动拦截问题代码的合入,防止目标分支被污染,提升代码评审效率。

配置扫描任务

新建扫描任务

选定需管控代码质量的仓库及分支,以及拟使用的扫描方案,即可创建扫描任务。

配置触发规则

在扫描任务中点击设置,轻点触发规则即可看到代码仓库触发设置。

配置质量门禁

开启后,建议将致命问题和错误问题阈值设置为 0,其一般为影响系统稳定和安全的严重漏洞。

开启「管控合并请求」开关后,无论是否为保护分支,合并至此分支的所有合并请求必须通过质量门禁后才允许合并。

代码扫描如何用于辅助代码评审

合并请求触发扫描

按照上文所述配置好分支的扫描任务后开启「管控合并请求」,向该分支新建合并请求时将自动触发代码扫描,若不通过质量门禁将自动拦截禁止合入。

您可以在合并请求详情中,查看问题概览、问题报告来了解代码质量。

查看问题报告

点击查看问题报告,可以看到本次扫描后的所有问题,每个问题都有与之对应的所属文件、问题所匹配的规则、问题级别等内容。

查看问题详情

点击查看问题,可以看到问题的位置与错误原因,点击右侧的修复建议可以查看问题原因并辅助进行修复。

示例:sql 注入警告

修复问题后重新推送

建议按照问题级别依次修复扫描出的问题,在本地修复完成后可提交至源分支,将自动触发代码扫描。

总结

通过上述方式配置代码扫描,可帮助团队在合并请求的场景中有效的管控代码质量,并提升团队对代码评审的效率和积极性,进而提升整个团队的工程质量。

  • 对于提交者,代码扫描可以提前发现自己的问题,及时修正以避免合并请求被拒绝。
  • 对于评审者,代码扫描不仅可以通过扫描结果辅助代码评审,还能够自动拦截问题代码的合入。
  • 对于团队,有了代码扫描可以在日常工作中提前发现问题代码,提高代码评审的效率,降低项目交付上线时存在的风险。

点击前往活动,「DevOps Workshop 学习营地」大奖等你赢!

DevOps Workshop | 代码管理入门:基于代码扫描实现团队效率提升的更多相关文章

  1. Coding.net 代码管理快速入门

    当项目创建好了之后,我们该如何上传代码到 coding 上呢? Coding 网站使用“ Git 仓库”(类似 github )来管理代码. 其操作原理在于:利用 git 服务,将本地的项目目录下的文 ...

  2. Coding 代码管理快速入门

    当项目创建好了之后,我们该如何上传代码到 coding 上呢?Coding 网站使用“ Git 仓库”(类似 github )来管理代码.其操作原理在于:利用 git 服务,将本地的项目目录下的文件同 ...

  3. Entity Framework入门教程(18)---EF6中基于代码进行配置方式

    EF6中基于代码进行配置方式 我们以前对EF进行配置时是在app.config/web.config下的<entityframework>节点下进行配置的,EF6引进了基于代码的配置方法. ...

  4. Coding 代码管理快速入门(转)

    当项目创建好了之后,我们该如何上传代码到 coding 上呢? Coding 网站使用“ Git 仓库”(类似 github )来管理代码. 其操作原理在于:利用 git 服务,将本地的项目目录下的文 ...

  5. Spring入门6事务管理2 基于Annotation方式的声明式事务管理机制

    Spring入门6事务管理2 基于Annotation方式的声明式事务管理机制 201311.27 代码下载 链接: http://pan.baidu.com/s/1kYc6c 密码: 233t 前言 ...

  6. 阿里云代码管理平台 Teambition Codeup(行云)亮相,为企业代码安全护航

    2019杭州云栖大会企业协作与研发效能专场,企业协同平台Teambition负责人齐俊元正式发布阿里云自研的代码管理平台Teambition Codeup(行云),Codeup是一款企业级代码管理产品 ...

  7. 使用 GistBox 轻松组织和管理你的代码片段

    GistBox 用简便的方式来组织和管理代码片段.你的代码会保存到云端进行备份,再也不用担心迷失在杂乱的代码片段中.GistBox 是建立在标准的 HTML5 技术基础上.在旅途中或在办公室,你都可以 ...

  8. git 一般的开发流程中的代码管理

    一般的开发流程中的代码管理 1. 从版本库中下载代码 git clone ssh://wenbin@192.168.1.3:29418/mustang-web 2. 针对某个feature(比如ins ...

  9. 【Git - 基础篇】如何快速有效的管理你的代码 - 安装和配置

    [本文仅凭个人经验进行整理,如有错误,欢迎指正,互相学习^^] -------------------------------------------------------------------- ...

随机推荐

  1. Qt5打包后缺少dll,启动失败问题

    Qt5使用Qt自带的windeployqt打包程序教程很多,其过程也很简单,但是大部分人在打包过程中会出现提示缺少dll,或者错误0xXXXX等问题,网上各种说法,我测试过基本都不怎么正确,这里写一下 ...

  2. Java学习的第十天

    1.类方法 实例方法 自定义方法 2.今天使用visio不太会使用,方法覆盖不懂. 3.明天将方法剩余部分学完

  3. LWJGL3的内存管理,第三篇,剩下的两种策略

    LWJGL3的内存管理,第三篇,剩下的两种策略 上一篇讨论的基于 MemoryStack 类的栈上分配方式,是效率最高的,但是有些情况下无法使用.比如需要分配的内存较大,又或许生命周期较长.这时候就可 ...

  4. [Luogu P1450] [HAOI2008]硬币购物 背包DP+容斥

    题面 传送门:https://www.luogu.org/problemnew/show/P1450 Solution 这是一道很有意思的在背包里面做容斥的题目. 首先,我们可以很轻松地想到暴力做背包 ...

  5. 【Postman】使用Postman实现接口数据关联

    首先下载安装Postman直接打开官网,点击下载按钮即可完成下载https://www.getpostman.com/downloads/ 栗子业务场景:用户登录医生账户,查询自己的处方列表数据:用户 ...

  6. 5分钟GET我使用Github 5 年总结的这些骚操作!

    我使用 Github 已经有 5 年多了,今天毫无保留地把自己觉得比较有用的 Gihub 小技巧送给关注 JavaGuide 的各位小伙伴. 这篇文章肝了很久,就挺用心的,大家看内容就知道了. 如果觉 ...

  7. 数字取证autopsy系列——保存证据镜像(一)

    简介: 在学习autopsy之前,我们先学习如何将犯罪嫌疑人的磁盘保存为一个证据镜像.我们使用的将磁盘保存为证据镜像的工具为AccessData FTK imager,你可以自行搜索下载. Acces ...

  8. 企业网络拓扑RSTP功能实例

    组网图形  RSTP简介 以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路.但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质 ...

  9. 无需开发,IT事件接入钉钉的方法详解

    1.市场在拥抱钉钉 虎嗅8月30日发表了一篇文章<为什么有很多企业沉迷钉钉无法自拔>,有兴趣的可以去看看,下附文章链接. 文章不短,其中有一部分阐述了:钉钉抓住以人为核心的"智能 ...

  10. TCP Persist 坚持定时器

    1.坚持定时器在接收方通告接收窗口为0,阻止发送端继续发送数据时设定. 由于连接接收端的发送窗口通告不可靠(只有数据才会确认),如果一个确认丢失了,双方就有可能因为等待对方而使连接终止: 接收放等待接 ...