私のgithubプロジェクトには数人の貢献者がいます。そのうちの1つだけをマスターに「プッシュ」できるようにしたい。そして、この男は私 (リポジトリの所有者) ではありません。することは可能ですか?
4 に答える
当時、この質問が投稿されたとき、GitHubではブランチレベルでアクセス権限を指定することはできませんでした。リポジトリレベルでのみ実行できます。だからあなたが要求していることは不可能でした。
この制限を回避したい場合は、個人的に2つのオプションがあります。
- ある種のコミットフックなどを使用して、少なくとも誰かに何か問題が発生したことを通知することができます
- この厳密な制御が本当に必要な場合は、2つのリポジトリを使用できます。1つは「マスター」ブランチのみを保持します。次に、「男」だけがマスターリポジトリへの書き込みアクセス権を取得することを確認する必要があります
いくつかの組織ではそれを解決する方が簡単だと思います。私のチームでは、マスターに直接何かをプッシュすることはありませんが、代わりに常にプルリクエストを作成します。これにより、コードがマージされる前に少なくとも誰かが確認できるようになります。また、「男」だけがプルリクエストをマージできるようにするポリシーを定義することもできます。
アップデート
GitHubは、保護されたブランチと呼ばれる新機能を展開することを発表しました。この機能は、AtlassianStashなどの他のgitディストリビューションに何年も存在しています。これにより、一部のブランチをプッシュから保護できます。ただし、それでも個々のブランチをACLベースで完全に保護することはできません。したがって、上記の概要のような組織的なソリューションに依存したくない場合は、この機能を確認することをお勧めします。
注:保護されたブランチと必要なステータス チェック(2015 年 9 月 3 日) により、ブランチを保護できます。
- 強制押しに対して
- 削除に反対
- 必要なステータスチェックに合格するまで、マージされた変更に対して
2016 年 3 月以降、以下のSanderのコメントにあるように、ユーザーとチームの制限があります。
保護されたブランチへのマージは、リリース マネージャーまたはその特定のブランチの安定性を担当する人々のチームに任せるのが最善の場合があります。組織は、保護されたブランチにプッシュできるメンバーとチームを指定できるようになりました。
これはまさに forking が設計されたものです。メイン リポジトリを保護し、すべての寄稿者にそのリポジトリの読み取り権限を許可します。これらの貢献者はリポジトリをフォークし、変更をメイン リポジトリの個人用コピーにプッシュします。コードをメイン リポジトリに導入する準備ができたら、プル リクエストをメイン リポジトリに送信します。この場合、メイン プロジェクトの所有者はプル リクエストを完了することができます。