2012-08-30 8 views
7

Weiß jemand, ob es in GitHub einen Mechanismus gibt: Enterprise, um einen allgemeinen Post-Receive-Hook einzurichten, der auf alle Repositories (einschließlich neuer Repositories, sobald sie erstellt werden) angewendet wird?GitHub: Post-Receipt-Hook

Ich versuche, eine Verbindung zu einem sekundären System zu entwickeln, das über alle Push-Vorgänge in allen Repositories benachrichtigt werden soll, und das manuelle Einrichten für jedes neue Repository ist nur eine Frage der Zeit, bevor es vergessen wird.

+3

Nun, die einfache Lösung besteht darin, ein Skript zu verwenden, um die Repos auf GitHub zu erstellen. Ich weiß, das beantwortet deine Frage nicht, aber es ist eine Option. –

+0

@JohnGietzen, ich nenne das "Plan B" für jetzt ... – jerryjvl

+3

Leider war dies eines der Dinge, die eine Regression beim Übergang von GitHub :: FI zu Enterprise GitHub waren. Jetzt, wo sie die VM sperren, gibt es keine unterstützte Möglichkeit, einen Hook für alle Repositorys zu verwenden. Die einzige andere Möglichkeit besteht darin, Post-Commit-Hooks für alles einzurichten, @JohnGietzen hat Recht, benutzt ein Skript und die API ist der richtige Weg. Leider ist es auch mehr Arbeit für Sie, es zu installieren und das Problem nicht wirklich zu beheben. :-( – jszakmeister

Antwort

-2

GithubCLI ist eine einfache Möglichkeit, mit GitHub Enterprise zu interagieren und können Sie post-receive hooks from the command line hinzufügen. Wenn Sie dies mit listing repositories verknüpfen, könnten Sie einen Cron-Job haben, der sicherstellt, dass alle Repositories einen bestimmten Post-Receive-Hook haben.

Sie könnten auch die REST API directly oder eine der vielen Bindungsbibliotheken wie github_api verwenden. Für Enterprise ist es ziemlich einfach. Der API-Endpunkt lautet http (s): // Ihre Firma/api/v3.

Es ist keine ideale Lösung, aber die API ist ziemlich einfach zu arbeiten. Ich hoffe, das hilft!

+2

Ich fürchte, das ist falsch, GithubCLI ermöglicht Ihnen die Interaktion mit der Github Enterprise Webhook-API, aber diese sind nicht identisch mit den Arten von Repository-Hooks, die Sie installieren können, wenn Sie Dateisystemzugriff auf das Repository haben. – feoh

4

Ich weiß, dass dies wirklich alt ist, aber GitHub Enterprise 2.6 kam nur mit Pre-Empfang Haken. Weitere Informationen finden Sie hier: https://help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/.

Dies sollte die Frage beantworten, die ursprünglich gepostet wurde, da diese auf Instanzebene eingerichtet wird (also nur auf GitHub Enterprise) und für alle Repositories funktioniert.

Ich versuche, eine Verbindung zu einem sekundären System zu entwickeln, das von allen Schüben für alle Repositorys benachrichtigt werden will, und erfordern manuelles Set-up für jeden neuen Repository wird nur eine Frage der Zeit, bis es bekommt Vergessene.

Für dieses Stück, eine andere Sache, die Sie in Log Forwarding auf GitHub untersuchen könnten. Sie können über Protokollweiterleitung hier lesen: https://help.github.com/enterprise/admin/articles/log-forwarding. Sie können auch mehrere Protokollweiterleitungsziele ab Version 2.6 steuern