配置 GoSec 扫描
使用 gosec 检查扫描软件源中的 Golang 源代码。
必需参数
管道需要表 1 中的参数来运行 Gosec 扫描。 有关管道参数的完整列表,请参阅 管道参数。
| 名称 | 类型 | 描述 | 必需或可选 |
|---|---|---|---|
opt-in-gosec |
text | 要启用 gosec 扫描,请将该属性设置为任意非空值。 要禁用扫描,可将其设置为空值或完全删除该属性。 (默认为空) | 必填 |
对专用 Git 存储库启用 gosec 扫描
如果项目需要位于专用 Git 存储库中的依赖关系,因此需要基于 SSH 的认证,那么您可以通过提供可选参数来启用管道以检索依赖关系。 有关更多信息,请参阅 允许下载专用存储库的依赖关系。
如果必须指定一个代理来检索依赖项,可以使用管道参数指定其 URL 以及凭据(用户名和令牌)。 有关更多信息,请参阅 启用 GOPROXY。
允许下载专用存储库的依赖关系
可通过提供以下所有管道参数来启用存储库的下载依赖关系。
| 名称 | 类型 | 描述 | 必需或可选 |
|---|---|---|---|
gosec-private-repository-url |
文本 | (已废弃) 您的私有资源库基础 URL. | 可选 |
gosec-private-repository-host |
文本 | 您的私有版本库主机。 | 可选 |
gosec-private-repository-ssh-key |
secret | 私人存储库的 SSH 密钥 | 可选项 |
gosec-private-repository-user |
文本 | 具有 https 访问权限的私有存储库的用户(默认为 x-oauth-basic ) |
可选 |
gosec-private-repository-token |
secret | 用于 https 访问私有仓库的令牌(默认为工具链中第一个 git 集成配置的令牌,其仓库 URL 托管在 gosec-private-repository-host 的值上) |
可选 |
启用 GOPROXY
如果必须指定 GOPROXY,那么必须提供以下所有参数。
| 名称 | 类型 | 描述 | 必需或可选 |
|---|---|---|---|
gosec-proxy-virtual-repository-user |
text | gosec 代理的虚拟存储库用户 | 可选 |
gosec-proxy-virtual-repository-token |
secret | gosec 代理的虚拟存储库令牌 | 可选 |
gosec-proxy-virtual-repository-url |
text | gosec 代理的虚拟存储库 URL | 可选 |
可选参数
gosec-scan-image 参数可用于指定要使用的其他 gosec 映像,例如定制映像或特定版本的官方 gosec 映像。
gosec-additional-flags 标志的用法见 示例 部分
| 参数名称 | 缺省值 | 描述 |
|---|---|---|
gosec-additional-flags |
text | 要附加到 gosec 命令开头的其他标志。 |
gosec-scan-image |
text | 指定备用 gosec 映像,包括定制映像或特定版本的官方映像。 |
gosec-repo-path-$repo_owner-$repo_name |
text | Go 模块根目录所在版本库的子目录路径。 当 go.mod 不在版本库根目录时,按版本库使用。 |
示例
将 gosec-additional-flags 的值定义为 -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true,并将 gosec 命令运行更新为:
./gosec -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true -no-fail -fmt=json -out=gosec-results.json -stdout -verbose=text ./...
要扫描位于子目录中的围棋模块,请设置 gosec-repo-path-$repo_owner-$repo_name 参数。 例如,如果版本库所有者是 myorg,版本库名称是 myrepo,而 Go 模块位于 cmd/myapp 目录中,则将参数定义为
- 参数名称:
gosec-repo-path-myorg-myrepo - 参数值:
cmd/myapp
这将从 cmd/myapp 路径而不是版本库根目录开始扫描 Go 代码。
使用您自己的配置文件
如果要修改缺省配置,请在目标存储库中创建 config.json 文件。 有关配置文件中的分析参数的更多信息,请参阅 gosec configuration。
使用另一静态扫描实现
如果要使用自己的静态扫描实现,请修改 .pipeline-config.yaml 文件并将自己的定制脚本添加到 static-scan 阶段。 有关更多信息,请参阅 定制脚本。