Bitbucket上的服务器端挂钩

时间:2017-08-27 18:12:52

标签: git githooks

我是创建git hooks的新手。我已经成功创建了一个本地git钩子,但我很难搞清楚如何在Bitbucket上安装服务器端钩子。

我尝试过使用一个名为External Hooks的插件并制作一个外部预接收挂钩,但这会导致我对Bitbucket的推送被拒绝:

remote:Hook external-pre-receive-hook阻止了推送  ! [远程拒绝]主人 - >主人(预先接收挂钩拒绝)。

我已经尝试将钩子放在服务器上的.git文件夹中。但是我找不到.git文件夹。我找到了ApplicationData / Bitbucket / bin / git-hooks。我尝试在那里放一个预接收挂钩文件但是没有成功。它并没有阻止推送回购,但文件也没有执行。

我正在使用的钩子/文件尽可能简单,所以我不认为这是问题所在。它有这样的文字:

#!/bin/sh
#

echo 'hi there soldier'

1 个答案:

答案 0 :(得分:2)

我通过向Bitbucket服务器添加文件找到了在存储库的基础上添加预接收或后接收挂钩的位置。在Atlassian文件夹中,它位于ApplicationData \ Bitbucket \ shared \ data \ repositories \ [repository#] \ hooks \。

Bitbucket使用数字而不是名称在内部跟踪回购,因此在上面用repo编号替换[repository#]。这可以在this way找到。

将预接收挂钩放在pre-receive.d文件夹中。将post-receive挂钩放在post-receive.d文件夹中。

钩子/文件的名称应以数字开头。这决定了钩子被激活的顺序'。开始数字至少为21,因为文件夹中的默认挂钩以20开头。您希望在Bitbucket服务器附带的挂钩之后激活挂钩。因此,预接收挂钩的文件名可以是21_pre_receive。

不要更改文件夹中的默认挂钩,因为它们是帮助Bitbucket工作所必需的。

可以找到更多信息here

相关问题