仓库配置
仓库配置是指针对代码库、源码包、制品库等层级进行的配置。
| 配置模块 | 代码库 | 源码包 | 制品库 |
|---|---|---|---|
| 分析项目 | ✅ | ✅ | ✅ |
| 基础配置 | ✅ | ❌ | ❌ |
| 触发配置 | ✅ | ❌ | ❌ |
| 过滤配置 | ✅ | ✅ | ❌ |
| 通知订阅 | ✅ | ✅ | ✅ |
| 定时任务 | ✅ | ❌ | ❌ |
| 基础信息 | ✅ | ✅ | ✅ |
| 合并请求 | ✅ | ❌ | ❌ |
| 分析报告 | ✅ | ✅ | ✅ |
| 数据统计 | ✅ | ❌ | ❌ |
分析项目
展示当前已创建的分析项目数据列表,并简要展示其执行代码分析后的概览数据,方便用户快速管理、进入到具体的分析项目内查阅代码质量情况。
可根据业务需求新建分析项目
代码库分析项目 = 代码库分支 + 分析路径 + 分析方案
源码包分析项目 = 源码包版本 + 分析方案
制品库分析项目 = 制品名称 + 分析方案
基础配置
| 配置模块 | 代码库 | 源码包 | 制品库 |
|---|---|---|---|
| 基础配置 | ✅ | ❌ | ❌ |
根据匹配规则将此配置项应用到匹配的分析项目上,优先级高于分析方案配置。
节点池:可指定代码库在特定执行机器上执行代码分析,如未配置则默认使用对应分析方案的节点池配置。
环境变量:用于提供代码库在执行代码分析时所需的环境变量,如工具运行、代码编译相关环境变量。
前置命令:项目编译前需要执行的命令,比如需要先执行某个脚本,或编译某个依赖工程。如无需要,可以不填。
编译命令:项目的编译命令,具体可以咨询该代码库所属项目的开发。能够使项目编译成功的编译命令,可以填写多行或用 && 连接命令。点击查看编译命令示例

触发配置
| 配置模块 | 代码库 | 源码包 | 制品库 |
|---|---|---|---|
| 触发配置 | ✅ | ❌ | ❌ |
配置仓库分支、方案规则,根据匹配规则监听代码库的代码提交事件、合并请求(MR/PR)事件,自动触发代码分析。
代码提交触发:当提交代码到目标分支时,会自动触发增量/全量分析。
合并请求触发:当发起合并请求时,将源分支合并到目标分支,会自动触发对源分支的增量/全量分析。如针对源分支 develop,发起合入到目标分支 release,develop -> release,则会自动触发 develop 分支的增量/全量分析。
管控合并请求:当发起合并请求时,源分支执行代码分析必须通过质量门禁后才允许合入到目标分支。需要对应分析方案已开启质量门禁阈值。

配置流程
创建触发配置,生成
webhook_url和secret;进入仓库托管平台对应代码库的 webhook 配置,配置对应的
webhook_url和secret即可。
支持的仓库托管平台
Github、腾讯工蜂、Gitee、Gitlab、私有化 Gitlab 等
配置示例
说明:以接入Github为例,其他平台同理
步骤1: 新建触发配置,根据使用指引,配置触发规则。
步骤2: 配置生效后效果如下截图,会生成一个对应的
webhook_url和secret。
步骤3: 登录 Github,进入对应的仓库内,选择
settings → web hooks → add new webhook(其他平台配置位置可能不同,但大同小异),将webhook_url和secret配置上去。触发事件处勾选push事件和pull requests事件。
配置完毕: 之后该仓库对应配置规则的分支在发生
PUSH和MR(PR)时就会自动触发执行代码分析。
私有化 Gitlab 说明
针对私有化 Gitlab,用户在配置 webhook 时,除了上述需要配置 webhook_url 和 secret 外,还需要增加一个 自定义header ,格式为:
Private-Plat-From: "Gitlab-xxx"
其中 xxx 为用户的团队名,例如用户的团队名为 AbaTeam ,则为:Private-Plat-From: Gitlab-AbaTeam。
提示
- 需要确保私有化 Gitlab 端口能被外界访问!
- 如果私有化 Gitlab 无法 https 访问,则需要将 webhook_url 的 https 调整成 http,否则会导致访问不通!
过滤配置
| 配置模块 | 代码库 | 源码包 | 制品库 |
|---|---|---|---|
| 过滤配置 | ✅ | ✅ | ❌ |
根据匹配规则将此配置项应用到匹配的分析项目上。
重要
修改后,下次分析生效,需要启动一次全量分析处理历史存量问题。

路径过滤
用于设定代码分析的范围,设定后,已经开启的代码检查、代码度量各项功能都会在指定的代码范围内生效。支持使用正则表达式语法。
示例:
代码目录:
|-src
|- test
|- main_test.py
|- input_test.py
|- main.py
|-test
|- param_test.py
匹配src/test目录:src/test/.*
匹配根目录下的test目录:test/.*
匹配所有_test.py后缀的文件:.*_test\\.py
问题过滤
注意
仅代码库适用,源码包不适用!
问题基线时间
用于标记从基线时间开始,新提交代码所引入的问题视为新问题,如设定基线时间为2024-02-08 00:00:00,则该时间之后引入的问题视为新问题。
问题对比分支
常用于多分支研发工作流和代码合并请求场景,通过设置对比分支,用于对比目标分支代码,过滤已经在目标分支上存在的代码问题。
问题忽略同步
在平台对代码检查问题进行全局忽略后:
如开启,匹配的分析项目在发起全量分析后,相同的问题会被忽略,默认开启。
如关闭,相同的问题不会被忽略。
拉取 GIT 子模块
如果 GIT 代码库中存在子模块,将自动拉取子模块中的代码。
过滤 GIT 子模块问题
不上报对 Git 子模块代码进行分析发现的问题。
拉取 GIT LFS
如果 GIT 代码库中存在 LFS 文件,勾选该项后,将自动拉取 LFS 文件。
通知订阅
| 配置模块 | 代码库 | 源码包 | 制品库 |
|---|---|---|---|
| 通知订阅 | ✅ | ✅ | ✅ |
根据匹配规则将此配置项应用到匹配的分析项目上。
目前支持 邮件、企业微信机器人、飞书机器人、钉钉机器人 等通知方式。

定时任务
| 配置模块 | 代码库 | 源码包 | 制品库 |
|---|---|---|---|
| 定时任务 | ✅ | ❌ | ❌ |
可指定分析项目在对应节点资源环境内周期性执行代码分析,建议仅针对主干分支的项目进行周期性分析。
基础信息
| 配置模块 | 代码库 | 源码包 | 制品库 |
|---|---|---|---|
| 基础信息 | ✅ | ✅ | ✅ |
可以查看基础信息,如名称、接入时间等,支持删除仓库。
提示
代码库的基础信息还可以配置 代码库 SSH 地址、代码库授权凭证、代码库成员 等。
合并请求
| 配置模块 | 代码库 | 源码包 | 制品库 |
|---|---|---|---|
| 合并请求 | ✅ | ❌ | ❌ |
在合并请求列表页可以查看被阻塞的合并请求对应的分析任务,并支持强行取消阻塞。

如何管控合并请求
参见管控合并请求
分析报告
| 配置模块 | 代码库 | 源码包 | 制品库 |
|---|---|---|---|
| 分析报告 | ✅ | ✅ | ✅ |
支持申请生成分析报告,报告生成后可下载查看。
数据统计
| 配置模块 | 代码库 | 源码包 | 制品库 |
|---|---|---|---|
| 数据统计 | ✅ | ❌ | ❌ |
规则统计
统计当前代码库使用到的规则数据情况,可以了解规则处理率情况。想了解指定分析方案下的规则统计情况,请查看分析方案-数据统计-规则统计。
由于一个代码库有 N 个分支,不同分支可能使用不同的分析方案,因此可以根据业务需求采用不同的统计策略来计算规则数据:
例如统计代码库默认分支,则可以得到指定统计周期下该代码库默认分支在使用不同分析方案后的规则统计数据。
例如指定某个具体的分支,则可以得到指定统计周期下该代码库指定分支在使用不同分析方案后的规则统计数据。
例如统计代码库全部分支,则可以得到指定统计周期下该代码库下全部分析项目的规则统计数据。
注意
进行规则统计时,针对某一规则,如果不同分析项目都使用该规则并发现问题,该规则的发现问题数是累加计算得到。


历史趋势分析
历史趋势分析可以度量该代码库在指定周期下的历史分析数据。
代码库历史趋势概览

提交人在该代码库的历史贡献

当月代码库分析概览
