41

GitHub は pre-receive または update フックを許可しますか?

私がやろうとしているのは、プライマリ ブランチがプッシュされないようにすること (つまり、マスター、ホットフィックス、開発) であり、それらを GitHub プル リクエスト経由でマージすることを要求することです。これはプライベート リポジトリであるため、GitHub スタイルのフォークはオプションではありません。

これを達成する方法についてのアドバイスは非常に役立ちます。

4

3 に答える 3

18

あなたが「共同作業者」としてリストした人だけが、Github がホストするリポジトリにプッシュできます。共同作業者を追加するには、リポジトリの「管理者」ページを参照してください。それ以外の人は、リポジトリの管理者に追加を承認してもらうために「プル リクエスト」を送信する必要があります。Github アクセス権限を参照してください。(ブランチごとのアクセス許可はありません。) したがって、目標を達成するためにフックは必要ありません。必要なものはすでに組み込まれています。

2 つのメモ:

  1. プライベート Github リポジトリは複数の貢献者を持つことができます
  2. フックに任意のコードが含まれている場合、Github が pre-receive フック (またはその他のサーバー フック) をサポートするのは珍しいことです。
于 2012-06-02T19:51:34.663 に答える
14

GitHub 自体は pre-receive フックを許可していませんが、GitHub Enterprise バージョン 2.6 には pre-receive フックのサポートが含まれています。詳細については、https ://help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/ を参照してください。これらは、情報がリポジトリにプッシュされるのを防ぐための、インスタンス全体の事前受信フックです。

私がやろうとしているのは、プライマリ ブランチがプッシュされないようにすること (つまり、マスター、ホットフィックス、開発) であり、GitHub プル リクエストを介してそれらをマージすることを要求することです。

ただし、この時点までは、保護されたブランチを使用して GitHub または GitHub Enterprise リポジトリを構成できます。これにより、ブランチが削除されたり、強制的にプッシュされたり、特定の人またはチームのみがマージされたり、マージが許可される前にステータスチェックに合格する必要がなくなります。詳細については、 https://help.github.com/articles/about-protected-branches/を参照してください。

于 2016-04-27T17:06:08.747 に答える
6

信頼できるチーム (プライベート リポジトリなのでそうなっていると思います) と共同作業を行っていて、単純にこれを実装して、人々が純粋な習慣から誤って標準の操作手順に違反するのを防ぎたい場合は、配布するのが最善の方法です。全員が自分のディレクトリにインストールするためのカスタムpre-pushフック スクリプト。(ローカルのプッシュされていないコミットが存在する場合、不必要なマージを排除するために暗黙的に変更するすべての実行を主張.git/hooksすることで、最近同様のことを行いました)git config branch.autosetuprebase alwaysgit pullgit pull --rebase

何らかの理由でそれがうまくいかない場合、事後にコミッターの権利を失うという脅威は、通常、人々を正直に保つための効果的なメカニズムであることがわかりました。

于 2015-12-05T14:38:09.537 に答える