【问题标题】:Creating git-hooks for pre-commit using ggshield使用 ggshield 创建用于预提交的 git-hooks
【发布时间】:2022-01-11 14:58:05
【问题描述】:

我有一个 android 项目,想安装一个 pre-commit。

我在关注这个例子: https://docs.gitguardian.com/internal-repositories-monitoring/integrations/git_hooks/pre_commit

repos:
  - repo: https://github.com/gitguardian/ggshield
    rev: main
    hooks:
      - id: ggshield
        language_version: python3
        stages: [commit]

我还做了以下事情:

pre-commit autoupdate
Updating https://github.com/gitguardian/ggshield ... already up to date.

但是,当我尝试提交时,我收到以下错误消息:

git commit -am"Updated pre-commit file"
GitGuardian Shield (pre-commit)..........................................Failed
- hook id: ggshield
- exit code: 1

Traceback (most recent call last):
  File "/home/steve/.cache/pre-commit/repol8_kb04j/py_env-python3/bin/ggshield", line 8, in <module>
    sys.exit(cli_wrapper())
  File "/home/steve/.cache/pre-commit/repol8_kb04j/py_env-python3/lib/python3.9/site-packages/ggshield/cmd.py", line 229, in cli_wrapper
    return_code: int = cli.main(standalone_mode=False)
  File "/home/steve/.cache/pre-commit/repol8_kb04j/py_env-python3/lib/python3.9/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/home/steve/.cache/pre-commit/repol8_kb04j/py_env-python3/lib/python3.9/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/steve/.cache/pre-commit/repol8_kb04j/py_env-python3/lib/python3.9/site-packages/click/core.py", line 1656, in invoke
    super().invoke(ctx)
  File "/home/steve/.cache/pre-commit/repol8_kb04j/py_env-python3/lib/python3.9/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/steve/.cache/pre-commit/repol8_kb04j/py_env-python3/lib/python3.9/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/home/steve/.cache/pre-commit/repol8_kb04j/py_env-python3/lib/python3.9/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/steve/.cache/pre-commit/repol8_kb04j/py_env-python3/lib/python3.9/site-packages/ggshield/cmd.py", line 121, in scan
    ctx.obj["client"] = retrieve_client(ctx)
  File "/home/steve/.cache/pre-commit/repol8_kb04j/py_env-python3/lib/python3.9/site-packages/ggshield/utils.py", line 248, in retrieve_client
    raise click.ClickException("GitGuardian API Key is needed.")
click.exceptions.ClickException: GitGuardian API Key is needed.

【问题讨论】:

  • 您的输出也具有误导性——rev: main 会在预提交中产生警告,autoupdate 会更改该值。发布问题时请使用准确的配置和输出

标签: github githooks pre-commit.com


【解决方案1】:

您必须设置a gitguardian api key 才能使用他们的服务(这不是免费提供的公共服务)。 git hook 和 cli 是 GitGuardian api 的薄包装

【讨论】:

  • 那么使用他们的 GitGuardian API 对于公共存储库来说不是免费的吗?我认为这是免费的,因为我在阅读文档时没有看到任何有关定价的信息
  • 它是“免费的”——但您需要一个帐户(以及一个受速率限制的 API 密钥等)
  • 谢谢,我已经看到了限制并创建了我的 gitguardian 密钥。它现在可以工作了。
【解决方案2】:

如果您遵循错误堆栈,您会看到消息

'click.exceptions.ClickException: GitGuardian API Key is required。'

这意味着您尚未设置GITGUARDIAN_API_KEY。按照 GitGaurdian documentation here 创建并设置它

【讨论】:

    猜你喜欢
    • 2023-01-17
    • 2020-08-12
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    相关资源
    最近更新 更多