主题
工具检测
1 准备
使用星图云统一登录(SSO)登录过 iTest 测试云
申请鸿渐 SAST 使用授权,提供以下信息:
星图云 ID:形式如
78xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx84的 36 位数字字母短横线组合串使用 SSO 登录 iTest 测试云后,可从此处获取星图云 ID

部门:同一部门下,可以查看到相同的检测项目
联系方式(可选)
- 等待管理员完成使用授权
2 创建项目
- 在 iTest 测试云工作台 > 工具检测 > 代码检测,新增检测项目,填写以下信息:
项目名称(不允许重复,会检测唯一性)
项目地址:项目仓库的 Git 地址
用户名:Git 用户名
密码:Git 密码或 Token(与用户名配合,有权限访问项目仓库即可)
分支(可选):不填默认检测 main 分支
企微消息(可选):企微群消息推送 Webhook 地址,可通过调用企微消息推送接口发送项目检测结果

- 点击确定,在检测项目创建成功后,通过复制 ID,获取到检测项目 ID,用于调用检测项目接口
3 接口调用
检测项目
GET https://itest.geovisearth.com/admin-api/check/sast/hj/check
Query 参数
- id(string):项目 ID
- sso(string):SSO ID
- quick(可选,true 为进行快速检测):是否进行快速检测,注意当项目为首次检测时,会忽略此参数
调用成功响应
json{ "code": 0, "msg": "", "data": true }查询项目检测阶段信息
GET https://itest.geovisearth.com/admin-api/check/sast/hj/checkStage
Query 参数
- id(string):项目 ID
- sso(string):SSO ID
调用成功响应
- 处于检测中时
json{ "code": 0, "msg": "", "data": [ "2025-10-09 16:38:46: 准备检测环境,启动检测引擎", "2025-10-09 16:38:55: START(预处理阶段-准备检测)", "2025-10-09 16:38:55: JAVA_GENERATE_JSP(预处理阶段-JSP转换)", "2025-10-09 16:39:01: JAVA_AST(解析阶段-构建抽象语法树)", "2025-10-09 16:39:02: JAVA_CFG(基本分析阶段-控制流分析)", "2025-10-09 16:39:02: JAVA_CG(基本分析阶段-函数调用分析)", "2025-10-09 16:39:06: JAVA_VDG(值依赖分析阶段-构建值依赖图)", "2025-10-09 16:39:06: JAVA_XML(值依赖分析阶段-XML信息处理)", "2025-10-09 16:39:14: JAVA_CHECKER(检测阶段-Java检测器分析)", "2025-10-09 16:39:14: 完成Java语言规则结果存储,总条目为336", "2025-10-09 16:39:15: JAVA_MEASURE(检测阶段-Java度量分析)", "2025-10-09 16:39:15: 完成Java语言度量结果存储,总条目为15", "2025-10-09 16:39:15: START(预处理阶段-准备检测)", "2025-10-09 16:39:21: JAVASCRIPT_AST(解析阶段-构建抽象语法树)", "2025-10-09 16:39:22: JAVASCRIPT_CFG(基本分析阶段-控制流分析)", "2025-10-09 16:39:23: JAVASCRIPT_CG(基本分析阶段-函数调用分析)", "2025-10-09 16:39:28: JAVASCRIPT_VDG(值依赖分析阶段-构建值依赖图)" ] }- 检测完成后
json{ "code": 0, "msg": "", "data": null }企微消息推送
GET https://itest.geovisearth.com/admin-api/check/sast/hj/notice
Query 参数
- id(string):项目 ID
- sso(string):SSO ID
调用成功响应
json{ "code": 0, "msg": "", "data": true }
4 接口使用演示
具体演示脚本内容,详见
win_sample_sast_check.ps1
使用方法
打开
Windows PowerShell,进入脚本所在目录
执行
.\win_sample_sast_check.ps1,输入项目 ID 并回车,输入 SSO ID 并回车
5 使用场景
根据实际业务,可以在多种场景下进行应用
5.1 Git Hooks
在 Git 服务器的 hooks/post-receive 中添加
bash
#!/bin/bash
while read oldrev newrev refname; do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
if [[ "$branch" == "main" ]]; then
bash sast_check.sh -id "your_project_id" -sso "your_sso_id" > /dev/null 2>&1 &
fi
done5.2 GitLab CI/CD
在项目下的流水线脚本,如 .gitlab.ci.yml 文件中添加
yaml
stages:
- sast
sast_check:
stage: sast
only:
- main
script:
- bash sast_check.sh -id $CI_PROJECT_ID -sso $SAST_SSO_ID5.3 Gitea Actions
在项目下的流水线脚本,如 .gitea/cicd.yml 文件中添加
yaml
name: SAST Check
on:
push:
branches:
- main
jobs:
sast-check:
steps:
- uses: actions/checkout@v4
- name: Run SAST
run: |
bash sast_check.sh -id ${{ CI_PROJECT_ID }} -sso ${{ SAST_SSO_ID }}