2

所以我试图在他们的 yaml 文件中运行和使用gitleaksgithub-actions

我的目标是仅在最后一次提交时运行 gitleaks,这意味着如果有人因为代码泄漏而出错,他需要修复它并再次提交,它会起作用。

现在,如果我像这样运行它,它会查看所有提交历史并检查(这不好,因为如果我修复了泄漏,它应该会通过)

这是yaml:

name: gitleaks

on: [pull_request]

jobs:
  gitleaks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: gitleaks-action with defaults
        uses: zricethezav/gitleaks-action@master
      - name: gitleaks-action with config
        uses: zricethezav/gitleaks-action@master
        with:
          config-path: .gitleaks.yml

在阅读了一点之后,我尝试使用:

- uses: actions/checkout@v2
        with:
          fetch-depth: '0'

但是“0”仍然给了我所有的提交历史。试图更改为 1 或 2,现在它仍然通过了(如果代码中有泄漏),我得到:

time="2021-12-21T13:52:58Z" level=info msg="提交扫描:0"

我怎样才能让它只在最后一次提交时运行?

4

1 回答 1

0

您可以使用 '--log-opts ' gitleaks 选项来设置提交限制(Gitleaks doc)。

因此,要仅获取最后一次提交,您应该使用“-n 1”将提交次数限制为一次。

整个 gitleaks 命令看起来像:gitleaks detect --source . --log-opts "-n 1"

注意:这不限制 github Action 但 gitleaks

注意2:这只会测试最后一次提交给出的差异(即:git log -p -n 1命令的结果)

于 2022-01-07T12:58:32.820 回答