相关疑难解决方法(0)

哪个git钩子用于验证推送的提交消息?

我需要验证推送到远程的提交消息,以防止开发人员没有提供足够的细节(字符串长度)或只提供票号.

我认为更新钩子可以用于此但它似乎没有 - 但它只适用于之前已被推送的引用.当我试图推动一个新分支时,它拒绝了,因为它找不到引用.我怀疑它也可能只是针对推送系列中的最新提交而运行.

执行此任务的钩子的正确选择是什么?

片段:

#!/usr/bin/env php
<?php

define('MINIMUM_MESSAGE_LENGTH', 10);

$exit = 0; // default exit code -> success

$ref = $argv[1];
$commitMessage = exec('git log -1 ' . $ref . ' --pretty=format:%s');
$commitMessage = trim($commitMessage);

// validations & exit($exit) follow; 
Run Code Online (Sandbox Code Playgroud)

这是PHP,但问题是语言不可知

git githooks

6
推荐指数
1
解决办法
4755
查看次数

在更新挂钩中查看新分支上的提交

我写了一个更新挂钩(服务器端),它检查所有提交消息(检查是否存在问题ID)

有一个我的python代码(update.py)的摘录:

[...]
if newrev == "0000000000000000000000000000000000000000":
  newrev_type = "delete"
elif oldrev == "0000000000000000000000000000000000000000":  
  newrev_type = "create"

  # HERE IS MY QUESTION, I want to get the commits SHA-1 :-)

else:
  POPnewrev_type = os.popen("git cat-file -t " + newrev)
  newrev_type = POPnewrev_type.read()[0:-1]
  # get the SHA-1
  POPanalyzelog = os.popen("git log " + oldrev + ".." + newrev + " --pretty=#%H")
  analyzelog = POPanalyzelog.read().split('#')
[...]
Run Code Online (Sandbox Code Playgroud)

所以,在这里,如果newrev_type ="delete",用户想要删除分支=>没问题.
在推入现有分支的情况下,我们得到提交的SHA-1 => OK
但是当用户创建分支时,我不知道如何获得SHA-1 ...

你有什么想法?

git hook githooks

1
推荐指数
1
解决办法
1612
查看次数

标签 统计

git ×2

githooks ×2

hook ×1