如何在GitHub Enterprise仓库中添加自定义git挂钩?

aft*_*oon 5 github githooks

我已经启动了一个GitHub Enterprise实例(11.10.272)并创建了一个存储库.我已经在Ruby中编写了一个预接收挂钩,我想在该存储库中使用它.

与常规GitHub一样,GitHub Enterprise允许配置服务挂钩.我试图通过SSH连接到GitHub Enterprise服务器来创建一个钩子文件,但我找不到repo目录.此外,GitHub Enterprise的条款禁止修改VM,所以我不相信这是一个很好的方法.

似乎GitHub:FI支持钩子.根据从GitHub:FI迁移,当前版本的FI to Enterprise迁移工具目前不支持挂钩.

小智 5

我知道这很老了,但是GitHub Enterprise 2.6刚刚推出了预接收挂钩.可以在此处了解更多信息:https://help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/.

我相当肯定这将完全符合你要找的东西.希望这可以帮助OP,或者其他任何偶然发现它的人!


Noa*_*bbs 3

根据我向 GitHub 客户支持发送的电子邮件,自 2013 年 5 月起,GitHub Enterprise 不支持预接收挂钩。

我们没有 GHE 盒子的管理员访问权限,因此如果我们愿意的话,我们无法进入并“修复”此问题。

他们声称,如果你可以拒绝提交,他们所做的事情就会被破坏。我认为它们的意思是自动合并拉取请求之类的东西,但我不确定。

他们有一组广泛的提交后 Webhooks,您可以将其用于提交后功能。

我正在考虑构建一个“直通 git 服务器”——基本上,经常轮询 GHE API 以对某些 GHE 帐户上存在的任何存储库进行本地克隆,然后使用自定义预接收和自动克隆它接收后挂钩。这将使我们能够克隆直通服务器,在那里进行预接收挂钩,并将批准的更改推送到 GHE。目前似乎还没有任何类型的标准 git 直通服务器,可能是因为您需要知道要克隆哪些存储库,而它似乎没有标准的 git API。