|
6 | 6 |
|
7 | 7 | 只需要几步操作:
|
8 | 8 |
|
9 |
| -1. 编写代码,实现扫描工具逻辑 |
| 9 | +1. 编写代码,实现分析工具逻辑 |
10 | 10 | 2. 提交工具到 git 代码库
|
11 |
| -3. 在页面创建新工具 |
12 |
| -4. 为工具添加规则 |
13 |
| -5. 将工具配置到执行节点 |
14 |
| -6. 在项目分析方案中添加规则 |
| 11 | +3. 在TCA上添加新工具和规则 |
| 12 | +4. 将工具配置到执行节点 |
| 13 | +5. 在项目分析方案中添加规则 |
15 | 14 |
|
16 | 15 | ::: danger 扩展集成工具免责声明
|
17 | 16 | 被扩展集成进腾讯云代码分析系统的任何非官方工具,该类工具对于腾讯云代码分析系统等于黑盒,腾讯云代码分析系统不对该类工具负责,由该类工具方承担所有责任(包括但不限于分发被分析代码,产生代码以及相关信息泄漏)。
|
18 | 17 | :::
|
19 | 18 |
|
20 |
| -## 自定义工具步骤说明 |
| 19 | +## 方式一:从开源社区快速添加 |
| 20 | +- 适用场景:如果接入的是业界常用的代码分析工具,可能已经有开源社区开发者实践过,建议先在开源代码库中搜索,如果开源社区已有该工具的TCA插件(已符合TCA工具接入规范),则可以直接使用开源工具插件仓库,快速接入。 |
| 21 | +- 接入步骤: |
| 22 | + - 1. 直接使用开源工具TCA插件仓库,或按需fork到自己名下,或提交到自己搭建的私有化git服务上 |
| 23 | + - 2. 将仓库中的工具json文件,通过工具管理页面,或TCA server后台load的方式,加载到TCA平台上,即可在TCA页面上查看到新工具及其规则列表 |
| 24 | + - 3. 在节点管理页面,添加该工具进程到机器节点中,则对应机器即可接收执行该工具的代码分析任务 |
| 25 | + - 4. 在项目分析方案中添加该工具规则,启动代码分析,即可执行该工具进行代码分析 |
| 26 | +- Tips:一般在对应工具插件仓库的 README 文档中也会有接入指引,可参考[第三方工具列表](工具列表.md)。 |
| 27 | + |
| 28 | +## 方式二:自定义开发工具 |
| 29 | +- 适用场景:自主研发自定义工具,或开源社区未找到已有工具插件,可以通过该方式自定义接入。 |
21 | 30 |
|
22 | 31 | ### 第一步,编写代码,实现分析工具逻辑
|
23 | 32 |
|
|
28 | 37 |
|
29 | 38 | - **运行方式**:支持命令行执行,比如 python run.py 或 run.exe,执行命令的工作目录为工具代码的根目录。
|
30 | 39 |
|
31 |
| -- **运行环境说明**: |
| 40 | +- **运行环境说明**: |
32 | 41 | - 建议将工具打包编译成可执行程序,拉取下来直接可以执行。
|
33 | 42 | - 如果工具需要在特定的环境中运行,比如python、java环境,平台提供了丰富的工具依赖包,可以在`工具管理`-`工具依赖`中查看,创建工具时可供选择,执行时会自动配置好依赖环境。
|
34 | 43 | - 如果现有的工具依赖包未支持所需依赖,也可以创建新的工具依赖使用。
|
|
43 | 52 | TASK_REQUEST: 值为一个json文件路径,文件内容为当前扫描任务参数
|
44 | 53 | RESULT_DIR: 结果result.json输出的结果目录路径
|
45 | 54 | ```
|
46 |
| - |
| 55 | + |
47 | 56 | - **工具命令声明**
|
48 |
| - |
| 57 | + |
49 | 58 | 在工具仓库根目录下,添加一个`tool.json`文件,声明工具的检查和扫描命令,比如:
|
50 | 59 | ```json
|
51 | 60 | {
|
|
55 | 64 | ```
|
56 | 65 | 参数说明:
|
57 | 66 | - `check_cmd`:
|
58 |
| - - 功能:判断当前执行环境是否满足工具要求(如果不需要检查,也可以没有这个命令)。 |
| 67 | + - 功能:判断当前执行环境是否满足工具要求(如果不需要检查,也可以没有这个命令)。 |
59 | 68 | 比如某些工具只能在linux下执行,需要判断当前是否为linux环境。
|
60 |
| - - 输出:将判断结果输出到`check_result.json`文件中,文件内容为`{"usable": true}`或`{"usable": false}`。 |
| 69 | + - 输出:将判断结果输出到`check_result.json`文件中,文件内容为`{"usable": true}`或`{"usable": false}`。 |
61 | 70 | - `run_cmd`:
|
62 | 71 | - 功能:扫描代码,执行自定义检查器逻辑(该命令必须存在)。
|
63 | 72 | - 输出:按照指定格式,输出结果到结果目录下的`result.json`文件中。
|
64 |
| - |
| 73 | + |
65 | 74 | - **工具输出格式要求**
|
66 | 75 |
|
67 | 76 | - 将扫描结果输出到`RESULT_DIR`环境变量指定的目录下的`result.json`文件中(Python 示例代码)
|
|
111 | 120 |
|
112 | 121 | ### 第三步,在工具管理页面中创建工具
|
113 | 122 |
|
| 123 | +- Tips:除了通过页面手动添加的方式,也可以通过编写工具json的方式,将工具和规则配置到json文件中,通过load json文件的方式来加载工具和规则。 |
| 124 | + |
114 | 125 | - 进入工具管理页面,点击创建工具
|
115 | 126 |
|
116 | 127 | 
|
|
143 | 154 | 
|
144 | 155 |
|
145 | 156 | 添加完成后,会展示已添加的依赖方案:
|
146 |
| - |
| 157 | + |
147 | 158 | 
|
148 | 159 |
|
149 | 160 | **工具依赖说明:**
|
|
0 commit comments