フォークを越えてマージリクエストでコラボレーションする
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
フォークからマージリクエストを開くと、アップストリームのメンバーがブランチで共同作業できるようにすることができます。このオプションを有効にすると、ターゲットブランチへのマージ権限を持つメンバーは、マージリクエストのソースブランチへの書き込み権限を取得します。
これにより、アップストリームプロジェクトのメンバーは、マージする前に小さな修正を行ったり、リベースブランチを作成したりできます。
この機能は、フォークされたプロジェクト間で公開されているマージリクエストで使用できます。
アップストリームメンバーからのコミットを許可する
マージリクエストの作成者は、コントリビュート先のプロジェクトのアップストリームメンバーからのコミット編集を許可できます:
- マージリクエストの作成または編集中に、コントリビュートまでスクロールし、Allow commits from members who can merge to the target branch(ターゲットブランチにマージできるメンバーからのコミットを許可する)チェックボックスを選択します。
- マージリクエストの作成を完了します。
マージリクエストを作成すると、マージリクエストウィジェットにMembers who can merge are allowed to add commits(メンバーはマージできるコミットの追加を許可されています)というメッセージが表示されます。アップストリームメンバーは次のことができます:
- ブランチに直接コミットします。
- マージリクエストのパイプラインとジョブを再試行します。
アップストリームメンバーからのコミットを禁止する
マージリクエストの作成者は、コントリビュート先のプロジェクトのアップストリームメンバーからのコミット編集を禁止できます:
- マージリクエストの作成または編集中に、コントリビュートまでスクロールし、Allow commits from members who can merge to the target branch(ターゲットブランチにマージできるメンバーからのコミットを許可する)チェックボックスをオフにします。
- マージリクエストの作成を完了します。
アップストリームメンバーとしてフォークにプッシュする
次の条件に該当する場合、フォークされたリポジトリのブランチに直接プッシュできます:
- マージリクエストの作成者が、アップストリームメンバーからのコントリビュートを有効にしている。
- アップストリームプロジェクトのデベロッパーロール以上を持っている。
フォークのブランチに変更をプッシュしたり、コミットを追加したりするには、コマンドラインGitを使用できます。詳しくは、アップストリームメンバーとしてフォークにプッシュするためにGitを使用を参照してください。
トラブルシューティング
フォークされたプロジェクトのMRページからパイプラインステータスを利用できません
ユーザーがプロジェクトをフォークすると、フォークされたコピーの権限は元のプロジェクトからコピーされません。アップストリームプロジェクトのメンバーがマージリクエストの変更を表示またはマージするには、フォークの作成者がフォークされたコピーに権限を付与する必要があります。
元のプロジェクトに戻るフォークされたプロジェクトのマージリクエストページからパイプラインステータスを表示するには:
- すべてのアップストリームメンバーを含むグループを作成します。
- 左側のサイドバーで、検索または移動先を選択し、フォークしたプロジェクトを見つけます。
- フォークされたプロジェクトの管理 > メンバーページに移動し、新しく作成したグループをフォークされたプロジェクトに招待します。