fabasoad/pre-commit-bearer
GitHub: fabasoad/pre-commit-bearer
该项目为 Bearer 代码安全扫描工具提供 pre-commit hook 集成,使开发团队能在代码提交前自动执行 SAST 和密钥泄露检测。
Stars: 0 | Forks: 0
# Bearer pre-commit hooks
[](https://stand-with-ukraine.pp.ua)




## 目录
- [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
```
## 贡献

标签:Git钩子, SOC Prime, 代码安全, 应用安全, 开发工具, 漏洞枚举, 错误基检测, 静态代码分析