2012-08-30 72 views
7

有没有人知道GitHub:Enterprise中是否有一种机制来建立一个通用的post-receive钩子,它将应用于所有的仓库(包括新仓库在创建后立即生效)GitHub:Enterprise post-receive hook

我正在尝试开发一个链接到一个辅助系统,该辅助系统将要获得所有存储库的所有推送的通知,并且要求每个新存储库的手动设置在被忘记之前只是一个时间问题。

+3

那么,简单的解决方案是使用脚本在GitHub上创建回购站。我意识到这并不能回答你的问题,但它是一种选择。 –

+0

@JohnGietzen,我现在要称之为“计划B”... – jerryjvl

+3

不幸的是,这是从GitHub :: FI到Enterprise GitHub的回归之一。现在,他们锁定了虚拟机,没有任何支持的方式将钩子应用于所有存储库。唯一的另一种选择是在每件事上设置post-commit钩子,@JohnGietzen是正确的,使用脚本和API是最好的选择。不幸的是,为了达到这个目标,还有更多工作要做,并且不能真正解决问题。 :-( – jszakmeister

回答

-2

GithubCLI是一种与GitHub Enterprise交互的简单方法,并且允许您添加post-receive hooks from the command line。将此链接与listing repositories可以有一个cron作业,确保所有存储库具有特定的post-receive挂钩。

您也可以使用REST API directly或许多绑定库之一,如github_api。对于企业来说,这相当简单。 API端点是http(s):// your-company/api/v3。

这不是一个理想的解决方案,但API很容易处理。希望有所帮助!

+2

恐怕这是不正确的,GithubCLI将允许你与Github Enterprise Webhook API进行交互,但这些不同于当你有文件系统访问版本库时可以安装的那些版本库钩子。 – feoh

4

我知道这确实很旧,但GitHub Enterprise 2.6刚刚推出了预接收钩子。更多信息可以在这里了解到:https://help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/

这应该回答最初发布的问题,因为这是在实例级别设置的(因此它只在GitHub Enterprise上)并且适用于所有存储库。

我试图建立一个链接到将要得到通知所有推到所有存储库辅助系统,并且需要手动设置为每个新仓库将只是一个时间问题它会之前忘记了。

至于这件作品,你可以考虑的另一件事是在GitHub上进行日志转发。你可以在这里阅读关于日志转发:https://help.github.com/enterprise/admin/articles/log-forwarding。你也可以控制2.6版以后的多个日志转发目的地。