Bitbucket上的服务器端挂钩

Pat*_*een 5 git githooks

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

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

远程:挂钩外部预接收挂钩阻止了推送![远程拒绝]主机->主机(预接收挂钩被拒绝)。

我试过将钩子放在服务器上的.git文件夹中。但是我找不到一个.git文件夹。我确实找到了ApplicationData / Bitbucket / bin / git-hooks。我尝试在其中放置一个预接收钩子文件,但没有成功。它没有阻止推送到存储库,但是文件也没有执行。

我正在使用的钩子/文件非常简单,所以我认为这不是问题。它具有以下文本:

#!/bin/sh
#

echo 'hi there soldier'
Run Code Online (Sandbox Code Playgroud)

Pat*_*een 5

我通过在Bitbucket服务器上添加文件来确定在存储库的基础上添加接收前或接收后钩子的位置。在Atlassian文件夹中,它位于ApplicationData \ Bitbucket \ shared \ data \ repositories \ [repository#] \ hooks \中。

Bitbucket在内部使用数字而不是名称来跟踪存储库,因此在上面,用存储库号替换[repository#]。可以用这种方法找出来。

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

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

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

可以在此处找到更多信息。