fabasoad/pre-commit-bearer

GitHub: fabasoad/pre-commit-bearer

该项目为 Bearer 代码安全扫描工具提供 pre-commit hook 集成,使开发团队能在代码提交前自动执行 SAST 和密钥泄露检测。

Stars: 0 | Forks: 0

# Bearer pre-commit hooks [![与乌克兰同在](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/5686d34d7d074513.svg)](https://stand-with-ukraine.pp.ua) ![GitHub release](https://img.shields.io/github/v/release/fabasoad/pre-commit-bearer?include_prereleases) ![security](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/fd6a8c7952074514.svg) ![linting](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3d1293a563074515.svg) ![functional-tests](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/80339a626c074517.svg) ## 目录 - [Bearer pre-commit hooks](#bearer-pre-commit-hooks) - [目录](#table-of-contents) - [工作原理?](#how-it-works) - [前置条件](#prerequisites) - [Hooks](#hooks) - [bearer-sast](#bearer-sast) - [bearer-secrets](#bearer-secrets) - [自定义配置](#customization) - [描述](#description) - [参数](#parameters) - [Bearer](#bearer) - [pre-commit-bearer](#pre-commit-bearer) - [日志级别](#log-level) - [日志颜色](#log-color) - [Bearer 版本](#bearer-version) - [清理缓存](#clean-cache) - [示例](#examples) - [贡献](#contributions) ## 工作原理? 首先,hook 会尝试使用全局安装的 `bearer` 工具。如果不存在, 则 hook 会将 `bearer` 安装到一个名为 `.fabasoad/pre-commit-bearer` 的临时目录中, 该目录将在扫描完成后被删除。 ## 前置条件 在使用此 pre-commit hook 之前,机器上必须安装以下工具: - [bash >=4.0](https://www.gnu.org/software/bash/) - [curl](https://curl.se/) - [jq](https://jqlang.github.io/jq/) ## Hooks ### bearer-sast 此 hook 运行 [scan . --scanner=sast](https://docs.bearer.com/explanations/scanners/#sast-scanner) 命令。 ``` repos: - repo: https://github.com/fabasoad/pre-commit-bearer rev: hooks: - id: bearer-sast ``` ### bearer-secrets 此 hook 运行 [scan . --scanner=secrets](https://docs.bearer.com/explanations/scanners/#secrets-scanner) 命令。 ``` repos: - repo: https://github.com/fabasoad/pre-commit-bearer rev: hooks: - id: bearer-secrets ``` ## 自定义配置 ### 描述 可以通过两种方式对 `bearer` 和 `pre-commit-bearer` 的扫描进行自定义:环境变量以及传递给 [args](https://pre-commit.com/#config-args) 的参数。 您可以将参数传递给 hook,也可以直接传递给 `bearer` 本身。为了区分参数,您需要为 `bearer` 的参数使用 `--bearer-args`,并为 `pre-commit-bearer` 的参数使用 `--hook-args`。支持的分隔符是 `=`。因此,请使用 `--hook-args=` 而不是 `--hook-args `。有关更多详细信息,请查看[示例](#examples)。 ### 参数 #### Bearer 您可以在本地[安装](https://docs.bearer.com/quickstart/#installation) `bearer`, 并运行 `bearer --help` 来查看所有可用的参数: ``` $ bearer --version bearer version 1.51.1, build 039294eca49451fdeaa381aa2f0926f8bf3d03ea $ bearer --help Scan your source code to discover, filter and prioritize security and privacy risks. Usage: bearer [flags] Available Commands: completion Generate the autocompletion script for your shell scan Scan a directory or file init Write the default config to bearer.yml ignore Manage ignored fingerprints version Print the version Examples: # Scan local directory or file and output security risks $ bearer scan --scanner=sast,secrets # Scan current directory and output the privacy report to a file $ bearer scan --report privacy --output . # Scan local directory and output details about the underlying # detections and classifications $ bearer scan . --report dataflow Learn More: Bearer is a code security tool that scans your source code to identify OWASP/CWE top security risks, privacy impact, and sensitive dataflows For more examples, tutorials, and to learn more about the project visit https://docs.bearer.com ``` #### pre-commit-bearer 以下是 `pre-commit-bearer` 工具的优先级顺序: - 通过 `--hook-args` 作为参数传递给 hook 的设置。 - 环境变量。 - 默认值。 例如,如果您同时设置了 `PRE_COMMIT_BEARER_LOG_LEVEL=warning` 和 `--hook-args=--log-level error`,则将使用 `error` 值。 ##### 日志级别 使用此参数,您可以控制 `pre-commit-bearer` hook 输出的日志级别。 它不会影响 `bearer` 的日志级别输出。要控制 `bearer` 的日志级别输出, 请查看 [Bearer 参数](#bearer)。 - 参数名称:`--log-level` - 环境变量:`PRE_COMMIT_BEARER_LOG_LEVEL` - 可选值:`debug`、`info`、`warning`、`error` - 默认值:`info` ##### 日志颜色 使用此参数,您可以启用/禁用 `pre-commit-bearer` hook 日志的颜色显示。 它不会影响 `bearer` 日志的颜色显示。 - 参数名称:`--log-color` - 环境变量:`PRE_COMMIT_BEARER_LOG_COLOR` - 可选值:`true`、`false` - 默认值:`true` ##### Bearer 版本 指定要使用的特定 `bearer` 版本。这仅在未全局安装 `bearer` 时有效,否则将优先使用全局安装的 `bearer`。 - 参数名称:`--bearer-version` - 环境变量:`PRE_COMMIT_BEARER_BEARER_VERSION` - 可选值:[Bearer 版本](https://github.com/Bearer/bearer/releases) - 默认值:`latest` ##### 清理缓存 使用此参数,您可以选择保留缓存目录(`.fabasoad/pre-commit-bearer`)或将其删除。 默认情况下,它会删除缓存目录。如果设置为 `false`,则不会删除缓存目录,这意味着如果未全局安装 `bearer`,则后续每次运行都不必再次下载 `bearer`。别忘了将缓存目录添加到 `.gitignore` 文件中。 - 参数名称:`--clean-cache` - 环境变量:`PRE_COMMIT_BEARER_CLEAN_CACHE` - 可选值:`true`、`false` - 默认值:`true` ### 示例 独立传递各个参数: ``` repos: - repo: https://github.com/fabasoad/pre-commit-bearer rev: hooks: - id: bearer-sast args: - --hook-args=--log-level debug - --bearer-args=--fail-on-severity low - --bearer-args=--config-file bearer.yaml ``` 按类别将参数统一传递: ``` repos: - repo: https://github.com/fabasoad/pre-commit-bearer rev: hooks: - id: bearer-sast args: - --hook-args=--log-level debug - --bearer-args=--fail-on-severity low --config-file bearer.yaml ``` 设置这些参数以获得尽可能少的日志输出: ``` repos: - repo: https://github.com/fabasoad/pre-commit-bearer rev: hooks: - id: bearer-sast args: - --hook-args=--log-level=error - --bearer-args=--quiet --log-level error ``` ## 贡献 ![Alt](https://repobeats.axiom.co/api/embed/858ac0ba4dfbfa78ced1bdb84e77e8498d52ee80.svg "Repobeats analytics image")
标签:Git钩子, SOC Prime, 代码安全, 应用安全, 开发工具, 漏洞枚举, 错误基检测, 静态代码分析