【问题标题】:How to use this git pre-commit hook如何使用这个 git 预提交钩子
【发布时间】:2020-03-09 12:21:42
【问题描述】:

Yelp detect secrets 是一个防止机密进入您的代码库的系统。我想安装它提供的the pre-commit hook

我以前从未使用过 git hooks,但我在.git/hooks/ 中看到的所有示例文件都是 bash,而在 yelp 的the readme 中给出的示例是一个 yaml 文件。

他们链接到pre-commit.com; “用于管理和维护多语言预提交挂钩的框架”。

这是否意味着 yelp 预提交钩子只能通过首先安装 pre-commit 框架来使用?

如果是这样,我有点迷失在预提交的使用中。我已经安装了它,我可以调用它。所以在现有的回购中,我运行了pre-commit install。但是我现在如何添加 yelp 检测秘密预提交挂钩?

当然,我已经查看了 pre-commit.com 上的文档,但我有点迷失了。欢迎任何提示。

【问题讨论】:

  • 您的问题究竟是什么? pre-commit钩子基本上是在执行提交之前运行的任意代码......

标签: git pre-commit-hook pre-commit pre-commit.com


【解决方案1】:

要使用预提交,您需要设置一个 .pre-commit-config.yaml,其中包括您想要使用的工具(例如空白修复程序、linter、black、flake8 等)

detect-secrets 还提供了一个使用此机制的钩子,您可以使用 the snippet they provide 将其包含在内:

-   repo: https://github.com/Yelp/detect-secrets
    rev: v0.13.0
    hooks:
    -   id: detect-secrets
        args: ['--baseline', '.secrets.baseline']
        exclude: .*/tests/.*

(注意:我编辑了 sn-p 以使用更便携的 https 克隆 url)

如果您发现难以使用检测秘密,还有更多标准工具可以处理此问题,例如 bandit(也具有预提交集成)

(免责声明:我是 pre-commit 的作者)

【讨论】:

  • 所以.pre-commit-config.yaml 进入了回购的根目录?
  • 是的,它按照惯例位于存储库的根目录中
猜你喜欢
  • 2013-12-15
  • 2019-07-12
  • 2015-01-13
  • 2018-05-21
  • 1970-01-01
  • 1970-01-01
  • 2018-01-07
  • 2018-07-23
相关资源
最近更新 更多