没有调用Gerrit ref-update钩子

时间:2016-10-20 09:18:35

标签: gerrit

按照以下链接中的步骤安装Gerrit(版本2.13.1):
https://gerrit-review.googlesource.com/Documentation/install-quick.html 在Ubuntu 16.04环境中。

在' $ site_path' / hooks中创建了一个hooks文件夹,并添加了一个ref-update挂钩文件,该文件只退出并返回代码为1。

为此文件提供了可执行权限。

Gerrit服务器重启后,允许我进行推送操作。

3 个答案:

答案 0 :(得分:2)

从Gerrit 2.13开始,你必须安装hooks插件。

Gerrit 2.13 Release NotesGerrit Documentation上查看更多详情。

hooks插件是一个核心插件,它打包在Gerrit war文件中,可以安装执行:

java -jar gerrit.war init -d <site_path> --install-plugin=hooks

更多信息here

答案 1 :(得分:2)

我正在使用Gerrit 2.14。这对我有用:

ref-update hook中的行为更改

现在在ref update操作完成之前调用ref-update挂钩,而不是在每次收到的提交时调用。 ref-update挂钩的先前行为被移动到名为commit-received的新挂钩中。

使用ref-update挂钩的网站应将挂钩文件重命名为commit-received。

https://www.gerritcodereview.com/releases/2.14.md#Behavior-change-in-ref_update-hook

答案 2 :(得分:0)

您也可以手动添加挂钩:

  1. 创建文件夹,例如/ hooks
  2. 添加此文件夹文件ref-update
  3. 使用此命令END
  4. 使此文件可执行
  5. 最后的事情是在 gerrit.config 文件下面添加文字,我的文件位于/ var / gerrit / review_site / etc /但是请检查你的文件在哪里
  6. 您需要添加 gerrit.config 文件:

    import sys
    
    if len(sys.argv) < 2:
        filename= input('what file? ')
        handle = open(filename, 'r')
    elif sys.argv[1]  == '-':
        handle = sys.stdin
    else:
        handle = open(sys.argv[1], 'r')
    
    appearances = []
    position = 0
    allwords = {}
    for line in handle.readlines():
        words = line.split()
        for w in words:
            w = w.lower()
            if w in allwords.keys():
                allwords [w] += 1
            else:
                allwords[w] =1
            for w in allwords:
                if not w in allwords:
                    allwords[w] = []
                    appearances.append(position)
                    position +=1
                else:
                    appearances.append(position)
                    position += 1   
    handle.close()
    
    keys = sorted(allwords.keys())
    for k in keys:
        print('{:15s} {} {}'.format(k, appearances, position))
    

    一般来说:

    chmod +x ref-update