有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何禁止不包含某些问题的提交

各位早上好,, 对于github上的Java项目,我必须使用github函数,如“issues”。为此,所有“提交”必须至少包含一个出口。为了防止我的团队做出死胡同,我必须在每次提交前检查。 GitHooks是这项工作的完美工具。仅用于实现与Windows兼容的脚本

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


共 (1) 个答案

  1. # 1 楼答案

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

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

    您可以像这样在shell中编写一个脚本来实现这一点,其中两个参数是pull请求的主分支(通常为master)和提交头:

    #!/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实现