我已经启动了一个GitHub Enterprise实例(11.10.272)并创建了一个存储库。我已经在Ruby中编写了一个预接收挂钩,我想在该存储库中使用它。
GitHub Enterprise与常规GitHub一样,允许配置服务挂钩。我试图通过SSH连接到GitHub Enterprise服务器来创建一个钩子文件,但我找不到repo目录。此外,GitHub Enterprise的条款禁止修改虚拟机,所以我不相信这是一个很好的方法。
似乎GitHub:FI支持挂钩。当前版本的FI to Enterprise迁移工具目前不支持根据Migrating from GitHub:FI的挂钩。
答案 0 :(得分:5)
我知道这真的很旧,但是GitHub Enterprise 2.6刚刚推出了预接收挂钩。可以在此处了解更多信息:https://help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/。
我相当肯定这将完全符合你要找的东西。希望这可以帮助OP,或其他任何偶然发现此事的人!
答案 1 :(得分:3)
根据我的GitHub客户支持电子邮件,截至2013年5月,GitHub Enterprise不支持预接收挂钩。
我们的GHE框没有管理员权限,因此如果我们愿意,我们无法进入并“修复”。
如果你拒绝提交,他们声称他们所做的事情会破裂。我认为它们意味着拉动请求的自动合并,但我不确定。
他们有一组广泛的提交后webhook,您可以将其用于提交后功能。
我正在研究构建一个“传递git服务器” - 基本上,经常轮询GHE API以对某些GHE帐户上存在的任何repo进行本地克隆,然后使用自定义pre自动克隆它 - 接收和接收后挂钩。这将让我们克隆传递服务器,在那里进行预接收挂钩,并将批准的更改推送到GHE。似乎没有任何类型的标准传递服务器用于git,可能是因为你需要知道什么回购克隆,这似乎没有标准的git API。
答案 2 :(得分:2)
GitHub Enterprise似乎将代理存储在/data/repositories
中。每个存储库都有一个由模板生成的钩子。我可以修改这些钩子,但这肯定会破坏一些东西。模板挂钩似乎在另一个位置查找挂钩,但该位置在config中定义,我找不到它。