【问题标题】:Is there a way to prevent git push if the code convention not right?如果代码约定不正确,有没有办法防止 git push?
【发布时间】:2022-01-17 09:26:06
【问题描述】:

我听说我可以保护分支并设置一些规则以允许用户推送他们的代码,但我看不到我想要的。

我想要的是当我设置一些代码约定时,如果用户不遵守它,用户的代码将不会推送(带有一些警告或警告他没有遵守约定的代码部分)。

主要使用的语言是python,但未来会包括更多的语言。

【问题讨论】:

标签: git github gitlab


【解决方案1】:

答案是也许。连接的服务器端可以运行pre-receive 挂钩来检查正在推送的内容并接受或拒绝它。但是,GitHub 仅支持 GitHub Enterprise Server(本地解决方案)而不是 github.com 上的自定义 pre-receive 挂钩。即使在 GHES 中,超时也被限制为 5 秒,这可能不足以完全 lint 您的代码。

处理此问题的典型方法是在 CI 中添加一个检查,如果样式不合适或不符合其他策略(例如,缺少尾随空格),则该检查会失败。这将允许推送,但如果拉取请求失败,它将阻止合并。

请注意,在客户端使用 pre-pushpre-commit 钩子不是一个好主意,因为这些钩子可以在没有任何证据的情况下轻松绕过。因此,它们不是有效的控制方法,不应用于此目的。

【讨论】:

    猜你喜欢
    • 2021-10-14
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多