Zadig v1.18.0 文档
  • 快速入门

    • 什么是 Zadig
    • 核心概念
    • 快速安装
    • 第一个项目
    • 接入准备
  • 安装与配置

    • 安装简介
    • All in One 模式
    • 使用 Sealos 一键安装
    • 基于 Helm 命令安装
    • 基于现有 Kubernetes 安装
    • 本地安装
    • 兼容性列表
  • 最佳实践
  • 项目

    • 项目

      • 项目介绍
      • K8s YAML 项目
      • K8s Helm Chart 项目
      • K8s 托管项目
      • 主机项目
      • 权限管理
    • 工作流

      • 简介
      • 产品工作流
      • 自定义工作流
      • 工作流任务
      • 工作流审批
      • 工作流通知
      • 工作流触发器
    • 环境

      • K8s YAML 环境
      • K8s Helm Chart 环境
      • K8s 托管环境
      • 主机环境
      • 服务详情
    • 服务

      • 简介
      • K8s YAML 测试服务
      • K8s Helm Chart 服务
      • K8s 托管服务
      • 服务组件
      • 服务变量
      • 主机服务
    • 构建
    • 测试
    • 代码扫描
  • 模板库

    • K8s YAML 模板
    • Helm Chart 模板
    • Dockerfile 模板
    • 构建模板
  • 工作流

    • 工作流的触发
    • 工作流的构建缓存
    • 工作流任务的并发运行
    • 工作流的镜像版本回退
    • 工作流的变量传递
  • 环境

    • 环境的负载均衡
    • 配置多套环境
    • 自测联调环境
  • 测试中心

    • 测试中心
    • 测试工具实践
    • Apipost 测试平台接入
    • Apifox 测试平台接入
  • 交付中心

    • 交付物追踪
  • 数据视图

    • 数据概览
    • 效能洞察
  • 仪表盘

    • 仪表盘
  • 集成管理

    • 账号系统

      • LDAP
      • OAuth 2.0
      • GitHub
    • 项目管理
    • 代码源

      • 简介
      • GitLab 集成
      • GitHub 集成
      • Gerrit 集成
      • Gitee 公有云集成
      • 其他代码源集成
    • CI/CD 工具
    • 代码扫描
    • 镜像仓库
    • 对象存储
    • Helm 仓库
    • Kubernetes 集群
    • 主机管理
    • 其他系统
    • 软件包管理
    • 自定义镜像管理
  • 系统设置

    • 系统配置
    • 用户管理
    • 公告管理
    • 操作日志
    • 通知设置
  • 账号设置

    • 偏好设置
  • 开发者中心

    • OpenAPI 开发文档

      • API 调用方式
      • 交付中心
      • 工作流
      • 效能洞察
    • 外部系统接入开发文档

      • 自定义账号系统
      • 自定义工作流任务
    • VS Code Toolkit 插件

      • 使用指南
  • 常见问题

    • 产品使用 FAQ
    • 部署运维 FAQ
    • 集群故障 FAQ
    • 认证鉴权 FAQ
    • 诊断手册
  • 版本发布历史

    • Zadig Roadmap
    • v1.18.0 Release Notes
    • v1.17.0 Release Notes
    • v1.16.0 Release Notes
    • v1.15.0 Release Notes
    • v1.14.0 Release Notes
    • v1.13.0 Release Notes
    • v1.12.0 Release Notes
    • v1.11.0 Release Notes
    • v1.10.0 Release Notes
    • v1.9.0 Release Notes
    • v1.8.0 Release Notes
    • v1.7.1 Release Notes
    • v1.7.0 Release Notes
    • v1.6.0 Release Notes
    • v1.5.0 Release Notes
    • v1.4.0 Release Notes
    • v1.3.1 Release Notes
    • v1.3.0 Release Notes
    • v1.2.0 Release Notes
    • v1.1.0 Release Notes
    • v1.0.0 Release Notes
    • v1.0.0-rc.1 Release Notes
  • 术语表

    • 术语表

本文主要介绍如何使用 Zadig 的代码扫描。目前支持以下功能:

  • 支持对所有语言的代码进行代码扫描
  • 支持在 Zadig 中使用 SonarQube 工具和自定义工具对代码进行扫描
  • 支持一键跳转到 Sonar 系统中分析代码扫描结果
  • 支持对多个代码仓库进行代码扫描
  • 支持基于代码变更自动触发代码扫描运行

新建代码扫描

访问项目 -> 代码扫描,点击新建代码扫描后填写配置。

新建代码扫描

代码扫描配置

基本信息

  • 名称:代码扫描名称,同一项目下不允许重复
  • 扫描工具:可指定 SonarQube 或其他
  • 扫描环境:执行扫码任务时的具体运行环境
    • 若使用 SonarQube 工具进行代码扫描,系统已内置了支持该工具的环境 sonar,选择 sonar 即可
    • 若使用其他工具进行代码扫描,可参考自定义镜像按需添加
  • 依赖的软件包:使用 SonarQube 工具做代码扫描时可配置该项,用于指定扫描过程中需要用到的各类软件包工具,比如不同版本的 Java、Go、Node 等
    • 选择软件包的过程中需要注意多个软件包之间的依赖关系,按照顺序进行安装。例如:Govendor 依赖 Go,那么请先选 Go,再选择 Govendor
    • 平台已内置一些常见的软件包,如果有其他软件包或者版本需求,系统管理员可以在软件包管理中配置其安装脚本
  • Sonar 地址:使用 SonarQube 工具做代码扫描时需配置该项
    • 需要事先在系统中集成 Sonar,参考文档:Sonar 集成
    • 当代码扫描执行完成后,Zadig 会将结果上传到此处指定的系统中

代码信息

需事先在 Zadig 中集成代码源,参考文档:代码源集成。

代码扫描配置

参数说明:

  • 代码源:代码库所在的平台,目前支持 GitHub、GitLab、Gerrit、Gitee
  • 代码库拥有者:支持开源库,以及所配置的代码源下的代码库拥有者
  • 代码库名称:代码库的名称。对于 Gerrit 代码源,支持模糊匹配,如上图例中所示
  • 默认分支:执行代码扫描任务时,默认选取的分支
  • Remote name:指定远程代码仓库的名称,默认 origin
  • 克隆目录名:定义代码库被克隆后的目录名称,默认为代码库的名称
  • 子模块:同步 submodule 中配置的代码库
  • 执行时显示:默认开启,若设置为关闭,执行代码扫描时不显示该代码库选项,代码配置使用默认值

变量

变量说明使用范围
WORKSPACE代码扫描工作目录前置脚本或扫描脚本
BRANCH第一个代码库的分支信息当扫描工具是 SonarQube 时可使用,可用于参数配置中

前置脚本

支持前置脚本的运行,在使用 SonarQube 工具进行扫描前,可以按需运行脚本,如 Java 编译。 前置脚本配置

参数配置

使用 SonarQube 工具进行代码扫描时配置的相关参数,其中 sonar.host.url 和 sonar.login 无需配置,在执行代码扫描时系统会自动注入。更多参数配置可参考 SonarQube 文档。

若扫描环境为 sonar,则参数配置中可使用 $BRANCH 变量获取当前被扫描代码库的分支信息。

代码扫描配置

高级配置

代码扫描配置

说明:

  • 策略配置:配置代码扫描的超时时间,若超过设置的时间阈值后扫描仍未结束,则视为超时失败
  • 资源配置:选择代码扫描任务运行时所使用的集群资源,其中本地集群指 Zadig 系统所在的集群,可参考集群管理集成更多集群资源
  • 操作系统规格:配置资源规格用于执行代码扫描任务。平台默认提供 高/中/低/最低 四种配置供选择,可以根据实际需要自定义
  • 触发器与通知:配置 Webhook 事件,自动触发代码扫描任务执行,配置细节参考:触发器与通知

触发器与通知

目前 GitHub/GitLab 代码源支持自动触发代码扫描功能

代码扫描配置

参数说明:

  • 代码库:即代码信息配置中的代码库
  • 目标分支:监听代码变更事件的分支
  • 触发事件: 指定触发代码扫描运行的 Webhook 事件,可选事件如下:
    • Push commits 事件(Merge 操作)时触发
    • Pull requests 提交 pull request 时触发
    • Push tags 新建 tag 后触发
  • 自动取消:若勾选,则当多个 Webhook 事件先后触发代码扫描任务时,系统会自动取消队列中的任务
  • 文件目录: 当指定文件或目录发生变化(新增/修改/删除)时,触发代码扫描,使用以下代码仓库文件结构示例说明:
├── reponame  # 仓库名称
  ├── Dockerfile 
  ├── Makefile
  ├── README.md   
  ├── src        
    ├── service1/
    ├── service2/
    └── service3/
触发场景文件目录配置
所有文件更新/
除 *.md 以外的其他文件更新/
!.md
除 service1 目录下的其他文件更新/
!src/service1/
service1 目录下所有文件更新src/service1/
src 目录下(除 service1 目录下的文件)的文件更新src
!src/service1/

执行代码扫描

选择具体的代码扫描 -> 点击执行,可对指定分支或 Tag 中的代码进行扫描。

执行代码扫描

当代码扫描任务运行完毕,可点击链接快速跳转至 SonarQube 系统中查看结果。

使用 SonarQube 工具做代码扫描时支持该功能。

代码扫描配置

Prev
测试