1 概述
代码扫描是一种自动代码检查工具。软件开发者可以在编码完成后执行多语言的代码静态检查和安全检查,获取全面的代码质量报告,发现代码的错误、漏洞或者代码异味,并提供相关的改进建议,有效管控代码质量。
2 代码扫描基本操作
2.1 新建扫描任务
路径:左上角菜单→代码扫描服务→新建任务→输入相关信息→确定
说明
• 所属项目为必选项,如没有项目,需要提前在“项目管理”服务中创建好,路径为:左上角菜单 →【项目管理】→【项目列表】→【创建项目】。
• 目前仅支持官方代码源,代码仓管跟所属项目关联,必须选择所属项目后,才能选择对应的代码仓库和分支
• 扫描任务默认采用【系统推荐规则集】来执行,该规则集为扫描规则最佳实践的集合。如需修改,可在执行一次扫描任务后,前往设置-扫描规则进行操作。
• 特别注意:代码路径一栏,不填则默认对整个仓库的代码进行扫描;如需对部分代码进行扫描,则需要指定代码路径,格式如/fi/app01/java/*,必须带星号,根目录无需填写;


2.2 执行扫描任务
2.2.1 路径
路径1:左上角菜单→代码扫描服务→任务列表→找到对应的扫描任务→扫描

路径2:点击任务名称-进入问题概览页-开始扫描


2.3 查看扫描结果
2.3.1 问题概览
路径:左上角菜单→代码扫描服务→任务列表→找到对应的扫描任务→点击任务名称
问题概览主要分为质量门禁、问题总数统计、未解决问题按级别和类型统计图、代码质量趋势图。数据来源为【问题列表】数据,展示最近一次扫描成功的数据。


2.3.1.1 质量门禁
根据团队对代码质量要求设置门禁阈值,帮助您了解代码质量是否合格。可前往设置→质量门禁进行开启和设置。
规则说明:
• 默认为关闭状态,需手动开启;
• 只要有一项门禁类型实际未解决问题数>门禁阈值时,质量门禁判断为【不通过】;
• 当所有门禁类型实际问题数<=门禁阈值时,质量门禁判断为【通过】
• 门禁设置完成后,将在下次扫描时生效。

2.3.1.2 新问题数
起始时间之后扫描出的问题将被划分为新问题数,您可以通过该数据快速了解您最近迭代的代码的质量情况。您可前往设置-定义新问题进行设置。
注意:起始时间要大于或者等于第一次扫描成功的时间,不可小于第一次扫描成功的时间。

2.3.2 问题列表
路径:左上角菜单→代码扫描服务→任务列表→找到对应的扫描任务→点击任务名称→问题列表

2.3.2.1 所属文件
点击具体的所属文件,可进入具体的文件详情页,查看问题所在位置

2.3.2.2 问题原因
点击具体的问题原因,可以查看具体问题原因以及相关指引,包括问题说明、正确示例、错误示例、修改意见等。

2.3.2.3 状态标记
状态分为待解决,已解决,已忽略,鼠标移入对应状态可以进行标记。
• 待解决:此问题等待解决,可手动修改为已解决或已忽略;
• 已解决:如果问题已经解决,且还没有执行下一次扫描,可通过手动暂时标记;
• 已忽略:标记后此问题可不再关注,在问题概览中相关数据也不会对该条数据进行统计。

2.3.2.4 问题类型
问题主要分为错误、异味、安全漏洞:
• 错误:bug,表示代码中存在问题;
• 异味:与代码可维护性相关,此类代码往往使人困惑,以至于在更新时可能会引入新的错误;
• 安全漏洞:与安全相关的代码问题,遵循一定的安全标准,如SQL 注入。
2.3.3 安全热点
路径:左上角菜单→代码扫描服务→任务列表→找到对应的扫描任务→点击任务名称→安全热点
安全热点:安全热点不一定存在问题,需要开发人员根据上下文判断是否需要修复。这些安全热点不会在问题概览中进行统计。

2.4 其他
2.4.1设置扫描规则
路径:左上角菜单→代码扫描服务→任务列表→找到对应的扫描任务→点击任务名称→设置→过扫规则
扫描任务默认以【系统推荐规则集】执行扫描,您也可以选择其他规则集执行扫描。如果没有合适的规则集,您也可以自定义规则集,自定义规则集看参考文档代码扫描-扫描规则新建规则集或复制规则集部分。
注意:未执行扫描时,扫描规则为空,只有扫描任务被执行过后,扫描规则这里才会有对应的语言和扫描规则,可进行规则集的切换。

2.4.2设置过滤文件
路径:左上角菜单→代码扫描服务→任务列表→找到对应的扫描任务→点击任务名称→设置→过滤文件
在执行扫描任务时,您也可以仅针对想扫描的文件进行扫描,过滤掉不想扫描的文件。
