2015-05-28 8 views
5

Ich versuche, meine Github Repo von einigen spezifischen Pushs zu schützen (z. B. Pushs mit Konfliktmarker wie <<<<<).Wie blockiere ich bestimmte Pushs mit github Webhooks?

Zuerst habe ich versucht, einen Pre-Commit-Git-Hook zu schreiben, um diese spezifischen Commits zu blockieren. Dann realisiert Github-Repositories keine Pre-Commit-Hooks und ich muss sie für jeden Mitwirkenden auf der Client-Seite installieren.

Dies ist keine saubere Lösung, weil jemand vergessen könnte, Hooks nach dem Klon zu installieren. Es ist auch möglich, Pre-Commit Hooks zu überschreiben.

Dann lernte ich über github webhooks. Sie können über die Nutzdaten bei Pushs auf das Repository informieren.

Ist es möglich, pushesh durch Webhooks zu untersuchen und zu blockieren?

+1

Github Haken eine Aktion nach einer Art eines Ereignisses machen, sie Entscheide nicht, ob die Aktion abgeschlossen werden darf. Sie sollten in git Server Seite Haken schauen: https://www.atlassian.com/git/tutorials/git-hooks/server-side-hooks/ –

+0

@BartlomiejLewandowski Danke für die Antwort. Ich habe bereits Server-Side-Hooks untersucht. Aber das Problem ist, dass GitHub sie nicht unterstützt. Meine Repos werden dort gehostet. –

Antwort

4

Github unterstützt das Platzieren serverseitiger Hooks nicht, sodass Sie dort keine Validierungen auf Remote-Repositorys ausführen können. Es ist jedoch technisch möglich, als Hack einen anderen Zwischenspeicher für die Zwischenspeicherung mit all diesen Hooks einzurichten, der eine Art von beschreibbarem Spiegel vor github ist. Die Leute übertragen ihre Änderungen an dieses Zwischen-Repository, das sie über Hooks validiert und dieselben Änderungen an das Github-Repository weiterleitet. IMHO Ich rate Ihnen davon ab, ein solches Repository hinzuzufügen, es sei denn, Ihre Entwickler brechen Ihre Sachen so oft.

Auf einer anderen Anmerkung, wenn Sie voran gehen mit einer solchen Implementierung, verwenden Sie das Update Haken statt pre-commit, wie es für jeden ref ausgeführt wird, die gedrückt wird