gpt4 book ai didi

java - 如果提交不包含某些问题,如何禁止提交

转载 作者:行者123 更新时间:2023-12-02 08:55:31 25 4
gpt4 key购买 nike

大家早上好,对于 github 上的 Java 项目,我必须使用 github 功能,例如“issues”。为此,所有“提交”必须包含至少一个退出。为了防止我的团队做出死胡同的提交,我必须在每次提交之前进行检查。GitHubHooks 是完成这项工作的完美工具。仅用于实现 Windows 兼容脚本。

在Linux环境中,我知道如何中断提交,但我不知道如何获取能够检查条件的提交内容。

最佳答案

一般来说,Git Hook 对于这种情况不是一个好的工具,因为用户可以使用 git commit --no-verify (以及各种其他技术)绕过它们。用户系统上的任何内容都不是有效的控制,因为用户可以修改或删除它。

通常,此行为是在服务器端完成的。在某些情况下,您可以运行 pre-receive Hook 来检查这些内容,但这在 GitHub 上是不可能的。相反,除了您所做的其他检查之外,您还应该在 CI 系统中检查这一点。

您可以编写一个脚本在 shell 中执行此操作,如下所示,其中两个参数是主分支(通常是 master)和拉取请求的提交 HEAD:

#!/bin/sh -e

git rev-list "$1".."$2" | xargs -L1 sh -c 'git log -1 --format=%b "$@" | grep -E "#[0-9]+"'

这将检查提交消息中的模式#[0-9]+,如果不匹配则退出非零值。如果您使用 bash 或 sh 调用这样的脚本,它也可以在 Windows 上运行,因为 Windows 上所有版本的 Git 都带有一些 shell 实现。

关于java - 如果提交不包含某些问题,如何禁止提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58452501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com