fabasoad/pre-commit-snyk

GitHub: fabasoad/pre-commit-snyk

为 pre-commit 框架提供 Snyk 安全扫描钩子,使团队在代码提交前即可自动执行漏洞检测与安全分析。

Stars: 15 | Forks: 5

# Snyk pre-commit hooks [![Stand With Ukraine](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a232cc9480074513.svg)](https://stand-with-ukraine.pp.ua) ![GitHub release](https://img.shields.io/github/v/release/fabasoad/pre-commit-snyk?include_prereleases) ![security](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8f765232d6074514.svg) ![linting](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8d099e873b074515.svg) ![functional-tests](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3140a5fd34074517.svg) ## 目录 - [Snyk pre-commit hooks](#snyk-pre-commit-hooks) - [目录](#table-of-contents) - [工作原理](#how-it-works) - [前置条件](#prerequisites) - [Hooks](#hooks) - [snyk-code](#snyk-code) - [snyk-container](#snyk-container) - [snyk-iac](#snyk-iac) - [snyk-log4shell](#snyk-log4shell) - [snyk-test](#snyk-test) - [自定义配置](#customization) - [描述](#description) - [参数](#parameters) - [Snyk](#snyk) - [pre-commit-snyk](#pre-commit-snyk) - [日志级别](#log-level) - [日志颜色](#log-color) - [Snyk 版本](#snyk-version) - [清理缓存](#clean-cache) - [示例](#examples) - [贡献](#contributions) ## 工作原理 Hook 首先会尝试使用全局安装的 `snyk` 工具。如果不存在, 则 Hook 会将 `snyk` 安装到 `.fabasoad/pre-commit-snyk` 临时目录中, 该目录将在扫描完成后被删除。 ## 前置条件 在使用此 pre-commit hook 之前,机器上必须备有以下工具: - [bash >=4.0](https://www.gnu.org/software/bash/) - [curl](https://curl.se/) - [jq](https://jqlang.github.io/jq/) ## Hooks ### snyk-code 此 hook 运行 [snyk code test](https://docs.snyk.io/snyk-cli/commands/code-test) 命令。 ``` repos: - repo: https://github.com/fabasoad/pre-commit-snyk rev: hooks: - id: snyk-code ``` ### snyk-container 此 hook 运行 [snyk container test](https://docs.snyk.io/snyk-cli/commands/container-test) 命令。 ``` repos: - repo: https://github.com/fabasoad/pre-commit-snyk rev: hooks: - id: snyk-container ``` ### snyk-iac 此 hook 运行 [snyk iac test](https://docs.snyk.io/snyk-cli/commands/iac-test) 命令。 ``` repos: - repo: https://github.com/fabasoad/pre-commit-snyk rev: hooks: - id: snyk-iac ``` ### snyk-log4shell 此 hook 运行 [snyk log4shell](https://docs.snyk.io/snyk-cli/commands/log4shell) 命令。 ``` repos: - repo: https://github.com/fabasoad/pre-commit-snyk rev: hooks: - id: snyk-log4shell ``` ### snyk-test 此 hook 运行 [snyk test](https://docs.snyk.io/snyk-cli/commands/test) 命令。 ``` repos: - repo: https://github.com/fabasoad/pre-commit-snyk rev: hooks: - id: snyk-test ``` ## 自定义配置 ### 描述 有 2 种方法可以为 `snyk` 和 `pre-commit-snyk` 自定义扫描 - 环境变量和传递给 [args](https://pre-commit.com/#config-args) 的参数。 你可以将参数传递给 hook,也可以直接传递给 `snyk` 本身。为了区分参数, 你需要使用 `--snyk-args` 来传递 `snyk` 参数,并使用 `--hook-args` 来传递 `pre-commit-snyk` 参数。支持的分隔符是 `=`。因此,请使用 `--hook-args=`, 而不是 `--hook-args `。请查看[示例](#examples)了解更多详情。 ### 参数 #### Snyk 你可以在本地安装 `snyk` 并运行 `snyk --help` 来查看所有可用的 参数: ``` $ snyk --version 1.1291.1 $ snyk --help CLI help Snyk CLI scans and monitors your projects for security vulnerabilities and license issues. For more information visit the Snyk website https://snyk.io For details see the CLI documentation https://docs.snyk.io/features/snyk-cli How to get started 1. Authenticate by running snyk auth. 2. Test your local project with snyk test. 3. Get alerted for new vulnerabilities with snyk monitor. Available commands To learn more about each Snyk CLI command, use the --help option, for example, snyk auth --help. Note: The help on the docs site is the same as the --help in the CLI. snyk auth Authenticate Snyk CLI with a Snyk account. snyk test Test a project for open-source vulnerabilities and license issues. Note: Use snyk test --unmanaged to scan all files for known open-source dependencies (C/C++ only). snyk monitor Snapshot and continuously monitor a project for open-source vulnerabilities and license issues. snyk container These commands test and continuously monitor container images for vulnerabilities and generate an SBOM for a container image. snyk iac These commands find and report security issues in Infrastructure as Code files; detect, track, and alert on infrastructure drift and unmanaged resources; and create a .driftigore file. snyk code The snyk code test command finds security issues using Static Code Analysis. snyk sbom Generate or test an SBOM document in ecosystems supported by Snyk. snyk log4shell Find Log4Shell vulnerability. snyk config Manage Snyk CLI configuration. snyk policy Display the .snyk policy for a package. snyk ignore Modify the .snyk policy to ignore stated issues. Debug Use -d option to output the debug logs. Configure the Snyk CLI You can use environment variables to configure the Snyk CLI and also set variables to configure the Snyk CLI to connect with the Snyk API. See Configure the Snyk CLI https://docs.snyk.io/features/snyk-cli/configure-the-snyk-cli ``` #### pre-commit-snyk 以下是 `pre-commit-snyk` 工具的优先级顺序: - 通过 `--hook-args` 作为参数传递给 hook 的参数。 - 环境变量。 - 默认值。 例如,如果你同时设置了 `PRE_COMMIT_SNYK_LOG_LEVEL=warning` 和 `--hook-args=--log-level error`,则会使用 `error` 值。 ##### 日志级别 通过此参数,你可以控制 `pre-commit-snyk` hook 输出的日志级别。 它不会影响 `snyk` 的日志级别输出。要控制 `snyk` 的日志级别输出, 请查看 [Snyk 参数](#snyk)。 - 参数名称:`--log-level` - 环境变量:`PRE_COMMIT_SNYK_LOG_LEVEL` - 可选值:`debug`, `info`, `warning`, `error` - 默认值:`info` ##### 日志颜色 通过此参数,你可以启用/禁用 `pre-commit-snyk` hook 日志的颜色。它不会影响 `snyk` 日志的颜色。 - 参数名称:`--log-color` - 环境变量:`PRE_COMMIT_SNYK_LOG_COLOR` - 可选值:`true`, `false` - 默认值:`true` ##### Snyk 版本 指定要使用的特定 `snyk` 版本。这仅在 `snyk` 未全局安装时有效, 否则将以全局安装的 `snyk` 为准。 - 参数名称:`--snyk-version` - 环境变量:`PRE_COMMIT_SNYK_SNYK_VERSION` - 可选值:[Snyk 版本](https://github.com/snyk/cli/releases) - 默认值:`latest` ##### 清理缓存 通过此参数,你可以选择保留缓存目录(`.fabasoad/pre-commit-snyk`), 或将其删除。默认情况下,它会删除缓存目录。如果传入 `false` 参数, 则不会删除缓存目录,这意味着如果未全局安装 `snyk`, 后续的每次运行将不会再次下载 `snyk`。别忘了将缓存目录添加到 `.gitignore` 文件中。 - 参数名称:`--clean-cache` - 环境变量:`PRE_COMMIT_SNYK_CLEAN_CACHE` - 可选值:`true`, `false` - 默认值:`true` ### 示例 分别传递参数: ``` repos: - repo: https://github.com/fabasoad/pre-commit-snyk rev: hooks: - id: snyk-test args: - --hook-args=--log-level debug - --snyk-args=--package-manager=pip - --snyk-args=--file=requirements.txt ``` 按类别将所有参数一起传递: ``` repos: - repo: https://github.com/fabasoad/pre-commit-snyk rev: hooks: - id: snyk-iac args: - --hook-args=--log-level debug - --snyk-args=--detection-depth=1 --ignore-policy ``` ## 贡献 ![Alt](https://repobeats.axiom.co/api/embed/7ce583138987e93d1295be43056e647a1d2ede8e.svg "Repobeats analytics image")
标签:SOC Prime, 安全专业人员, 应用安全, 开发工具, 错误基检测, 静态代码分析