分析项目
分析项目是执行分析的最小单元,目前有三种类型的分析项目:代码库分析项目、源码包分析项目、制品库分析项目。
Important
代码库分析项目 = 代码库分支 + 分析路径 + 分析方案
源码包分析项目 = 源码包版本 + 分析方案
制品库分析项目 = 制品名称 + 分析方案
| 功能模块 | 代码库分析项目 | 源码包分析项目 | 制品库分析项目 |
|---|---|---|---|
| 分析概览 | ✅ | ✅ | ✅ |
| 代码检查 | ✅ | ✅ | ❌ |
| 圈复杂度 | ✅ | ✅ | ❌ |
| 重复代码 | ✅ | ✅ | ❌ |
| 代码统计 | ✅ | ✅ | ❌ |
| 组件成分 | ✅ | ✅ | ✅ |
| 分析历史 | ✅ | ✅ | ✅ |
分析概览
| 功能模块 | 代码库分析项目 | 源码包分析项目 | 制品库分析项目 |
|---|---|---|---|
| 分析概览 | ✅ | ✅ | ✅ |
整体展示当前分析项目的质量情况、概览数据等。
对相关数据指标需要进行自定义调整,可以在分析项目对应的分析方案中进行配置变更,具体参考分析方案:
Tips
对分析方案配置变更后,需要执行全量分析使得调整生效!

代码检查
| 功能模块 | 代码库分析项目 | 源码包分析项目 | 制品库分析项目 |
|---|---|---|---|
| 代码检查 | ✅ | ✅ | ❌ |
展示当前分析项目代码检查发现的问题列表。
可以调整问题的
问题级别、问题状态、问题责任人。问题级别:由高到低分为:严重、错误、警告、提示。
问题状态:分为三个状态:未处理、已处理、已关闭。
责任人:git balme 责任人,通常为对应问题行提交者。
提供各项筛选条件快速定位相关问题。
部分工具规则发现的问题能显示完整的污点传播路径,能明确输入点、传播点,以及风险触发点
支持接入 AI 大模型,提供问题修复建议。


圈复杂度
| 功能模块 | 代码库分析项目 | 源码包分析项目 | 制品库分析项目 |
|---|---|---|---|
| 圈复杂度 | ✅ | ✅ | ❌ |
圈复杂度是一种代码复杂度的衡量标准,它可以用来衡量一个方法中结构的复杂程度。其数量上表现为独立执行路径条数,也可理解为覆盖所有的可能情况最少使用的测试用例数。
- 圈复杂度的意义
圈复杂度高的模块和方法,其缺陷个数往往也多,需重点关注。它可用于指导测试用例设计,创建数量与被测代码圈复杂度值相等的测试用例,以此提升用例对代码的分支覆盖率。
- 如何处理圈复杂度较高的函数?
建议采用重构函数的方式,即提炼函数、替换算法。 简化条件表达式的方法有逆向表达、分解条件以及合并条件,以多态取代条件式等。 简化函数调用可以采取读写分离、参数化方法和以明确函数取代参数的方法。


重复代码
| 功能模块 | 代码库分析项目 | 源码包分析项目 | 制品库分析项目 |
|---|---|---|---|
| 重复代码 | ✅ | ✅ | ❌ |
重复代码表示一段源代码在一个程序,或者一个团体所维护的不同程序中重复出现,是不希望出现的现象。 Don't Repeat Yourself !

代码统计
| 功能模块 | 代码库分析项目 | 源码包分析项目 | 制品库分析项目 |
|---|---|---|---|
| 代码统计 | ✅ | ✅ | ❌ |
可以统计运行该分析项目的代码仓库里所有文件的代码情况。能够分析出文件数量、代码行、语言及代码分布等,帮助团队快速掌握当前仓库代码量以及代码、语言分布等情况。

组件成分
| 功能模块 | 代码库分析项目 | 源码包分析项目 | 制品库分析项目 |
|---|---|---|---|
| 组件成分 | ✅ | ✅ | ✅ |
支持源码组件分析、二进制软件成分分析,用于分析项目中的软件成分、License 合规风险、安全漏洞、开源组件投毒风险,以及敏感信息泄漏等多维度风险。
具体使用参考组件分析。
分析历史
| 功能模块 | 代码库分析项目 | 源码包分析项目 | 制品库分析项目 |
|---|---|---|---|
| 分析历史 | ✅ | ✅ | ✅ |
用于展示每次执行代码分析的任务执行情况,查看任务详情以及结果等。
