非公開イシューのマージリクエスト
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
パブリックなリポジトリにあるマージリクエストは、非公開のイシューのために作成された場合でも公開されます。機密イシューで作業する際に機密情報が漏洩するのを避けるため、プライベートなフォークから同じネームスペース内にマージリクエストを作成してください。
ロールは親グループから継承されます。プライベートなフォークをオリジナルの (パブリックな)リポジトリと同じネームスペース (同じグループまたはサブグループ) に作成すると、デベロッパーはあなたのフォークで同じ権限を受け取ります。この継承により以下が保証されます:
- デベロッパーユーザーは、機密イシューを表示し、それを解決するために必要な権限を持っています。
- 個々のユーザーにあなたのフォークへのアクセスを許可する必要はありません。
詳細については、GitLabエンジニア向けのパッチリリース手順書を参照してください。
非公開のマージリクエストを作成する
ブランチはデフォルトで公開されています。作業の機密性を保護するため、ブランチとマージリクエストは同じネームスペース内ですが、プライベートフォークのダウンストリームに作成する必要があります。プライベートなフォークをパブリックなリポジトリと同じネームスペースに作成すると、あなたのフォークはアップストリームのパブリックなリポジトリの権限を継承します。アップストリームのパブリックなリポジトリのデベロッパーロールを持つユーザーは、あなたが操作することなく、あなたのダウンストリームのプライベートフォークでそれらのアップストリームの権限を継承します。これらのユーザーは、あなたのプライベートフォークにあるブランチに直ちにコードをプッシュして、機密イシューの修正を支援できます。
プライベートなフォークをアップストリームリポジトリとは異なるネームスペースに作成すると、機密情報が公開される可能性があります。2つのネームスペースには同じユーザーが含まれていない可能性があります。
前提条件:
- あなたはパブリックなリポジトリのオーナーまたはメンテナーロールを持っています。サブグループを作成するにはこれらのロールのいずれかが必要です。
- パブリックなリポジトリをフォークした状態であること。
- あなたのフォークの表示レベルが非公開であること。
非公開のマージリクエストを作成するには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- Plan > 作業アイテムを選択し、タイプ = Issueでフィルタリングして、あなたのイシューを選択してください。
- イシューの説明の下までスクロールし、非公開のマージリクエストを作成するを選択してください。
- あなたのニーズに合う項目を選択してください:
- ブランチとマージリクエストの両方を作成するには、非公開のマージリクエストとブランチを作成するを選択してください。あなたのマージリクエストは、パブリックなアップストリームプロジェクトのデフォルトブランチではなく、あなたのフォークのデフォルトブランチをターゲットにします。
- ブランチのみを作成するには、ブランチを作成を選択してください。
- 使用するプロジェクトを選択してください。これらのプロジェクトではマージリクエストが有効になっており、あなたはその中でデベロッパーロール(またはそれ以上)を持っています。
- ブランチ名を入力し、**ソース (ブランチまたはタグ)**を選択してください。GitLabは、これらのブランチがあなたのプライベートフォークで利用可能であるかを確認します。なぜなら、両方のブランチが選択したフォークで利用可能でなければならないからです。
- Createを選択します。
このマージリクエストは、パブリックなアップストリームプロジェクトではなく、あなたのプライベートフォークをターゲットにします。あなたのブランチ、マージリクエスト、およびコミットは、あなたのプライベートフォークに残ります。これにより、機密情報の時期尚早な公開を防ぎます。
以下の場合に、あなたのフォークからアップストリームリポジトリへのマージリクエストを開いてください:
- あなたのプライベートフォークで問題が解決されたと確信している場合。
- 機密コミットを公開する準備ができた場合。