変更を提案する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
レビュアーは、マージリクエストの差分スレッドでMarkdown構文を使用してコードの変更を提案できます。マージリクエストの作成者(または適切なロールを持つ他のユーザー)は、GitLab UIから提案のすべてまたは一部を適用できます。提案を適用すると、変更を提案したユーザーが作成したコミットがマージリクエストに追加されます。
提案を作成する
上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
左側のサイドバーで、コード > マージリクエストを選択して、マージリクエストを見つけます。
セカンダリメニューで、変更を選択します。
変更したいコードの行を見つけます。
- 1行を選択するには、行番号にカーソルを合わせ、この行にコメントを追加( )を選択します。
- 複数行を選択するには、次の手順に従います。
行番号にカーソルを合わせ、この行にコメントを追加( )を選択します。
選択してドラッグし、目的のすべての行を含めます。詳細については、複数行のサジェスチョンを参照してください。
- 特定の行ではなくファイル全体にコメントするには、ファイルのヘッダーでこのファイルにコメントする ( ) を選択します。
コメントツールバーで、候補を挿入する( )を選択します。GitLabは、次のように、自動入力されたコードブロックをコメントに挿入します。
```suggestion:-0+0 The content of the line you selected is shown here. ```自動入力されたコードブロックを編集して、提案を追加します。
コメントをすぐに送信するには、今すぐコメントを追加を選択するか、キーボードショートカットを使用します。
- macOS: Shift+Command+Enter
- その他すべてのOS: Shift+Control+Enter
レビューを完了するまでコメントを公開しないようにするには、レビューを開始を選択するか、キーボードショートカットを使用します。
- macOS: Command+Enter
- その他すべてのOS: Control+Enter
複数行の提案
マージリクエストの差分をレビューするときに、次のいずれかの方法で、1つの提案で複数の行(最大200行)への変更を提案できます。
- サジェスチョンの作成で説明されているように、選択してドラッグします。GitLabが、提案ブロックを作成します。
- 1行を選択し、提案ブロックで範囲オフセットを手動で編集します。
提案の最初の行の範囲オフセットは、選択した行に対する行番号を示します。オフセットは、提案が置き換える行を指定します。たとえば、この提案は、コメント行の上下2行をカバーしています。
```suggestion:-2+2
## Prevent approval by author
By default, the author of a merge request cannot approve it. To change this setting:
```適用すると、提案はコメント行の上下2行を置き換えます。
GitLabでは、複数行の提案は、コメントされた差分行の上100行と下100行に制限されています。これにより、提案ごとに最大201行の変更が可能になります。
複数行のコメントには、コメントの本文の上にコメントの行番号が表示されます。
リッチテキストエディタを使用する
提案を挿入するときは、WYSIWYGリッチテキストエディタを使用して、UIでソースファイルの行番号を上下に移動します。
変更された行を追加または削除するには、開始行の横にある**+または-**を選択します。
提案を適用する
前提条件:
- マージリクエストの作成者であるか、プロジェクトのデベロッパー、メンテナー、またはオーナーロールが必要です。
マージリクエストから提案された変更を直接適用するには、次の手順に従います。
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、コード > マージリクエストを選択して、マージリクエストを見つけます。
- 適用する提案を含むコメントを見つけます。
- 提案を個別に適用するには、提案を適用を選択します。
- 単一のコミットで複数の提案を適用するには、提案をバッチに追加を選択します。
- オプション。変更を説明するためのカスタムコミットメッセージを入力します。カスタムメッセージを入力しない場合は、デフォルトのコミットメッセージが使用されます。
- 適用を選択します。
提案を適用すると、GitLabは次のようになります。
- 提案を適用済みとしてマークします。
- コメントスレッドを解決します。
- 変更を含む新しいコミットを作成します。
- (ユーザーがデベロッパーロールを持っている場合)提案された変更をマージリクエストのブランチ内のコードベースに直接プッシュします。
サジェスチョンを却下する
前提条件:
- マージリクエストの作成者であるか、プロジェクトのデベロッパー、メンテナー、またはオーナーロールが必要です。
マージリクエストから直接サジェスチョンの変更を却下するには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、コード > マージリクエストを選択して、マージリクエストを見つけます。
- 却下するサジェスチョンを含むコメントを見つけます。
- オプション。サジェスチョンを却下する理由を記載した返信を追加します。
- スレッドを解決にするを選択します。
適用された提案のコミットメッセージを設定する
GitLabは、提案を適用するときにデフォルトのコミットメッセージを使用しますが、これは変更可能です。このメッセージはプレースホルダーをサポートしています。たとえば、デフォルトのメッセージApply %{suggestions_count} suggestion(s) to %{files_count} file(s)は、2つの異なるファイルに3つの提案を適用すると、次のようになります。
Apply 3 suggestion(s) to 2 file(s)フォークから作成されたマージリクエストは、ターゲットプロジェクトで定義されたテンプレートを使用します。プロジェクトのニーズに合わせて、これらのメッセージをカスタマイズし、他のプレースホルダー変数を含めます。
前提条件:
- メンテナーのロールを持っている必要があります。
これを行うには、次の手順を実行します:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > マージリクエストを選択します。
- マージ提案までスクロールし、ニーズに合わせてテキストを変更します。このメッセージで使用できるプレースホルダーのリストについては、サポートされている変数を参照してください。
サポートされている変数
適用された提案のコミットメッセージのテンプレートは、次の変数をサポートしています。
| 変数 | 説明 | 出力例 |
|---|---|---|
%{branch_name} | 提案が適用されたブランチの名前。 | my-feature-branch |
%{files_count} | 提案が適用されたファイルの数。 | 2 |
%{file_paths} | 提案が適用されたファイルのパス。パスはカンマで区切られます。 | docs/index.md, docs/about.md |
%{project_path} | プロジェクトパス。 | my-group/my-project |
%{project_name} | 人間が判別できるプロジェクト名。 | My Project |
%{suggestions_count} | 適用された提案の数。 | 3 |
%{username} | 提案を適用しているユーザーのユーザー名。 | user_1 |
%{user_full_name} | 提案を適用しているユーザーの氏名。 | User 1 |
%{co_authored_by} | Co-authored-byGitコミットトレーラー形式の提案作成者の名前とメール。 | Co-authored-by: Zane Doe <zdoe@example.com>Co-authored-by: Blake Smith <bsmith@example.com> |
たとえば、コミットメッセージをカスタマイズしてAddresses user_1's reviewを出力するには、カスタムテキストをAddresses %{username}'s reviewに設定します。
バッチ提案
前提条件:
- ソースブランチへのコミットを許可するプロジェクトのロールを持っている必要があります。
ブランチに追加されるコミットの数を減らすには、単一のコミットで複数の提案を適用します。
上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
左側のサイドバーで、コード > マージリクエストを選択して、マージリクエストを見つけます。
適用する提案ごとに、提案をバッチに追加を選択します。
オプション。提案を削除するには、バッチから削除を選択します。
目的の提案を追加したら、提案を適用を選択します。
複数の作成者からの変更を含むサジェスチョンのバッチを適用すると、結果として生成されるコミットでは、あなたが作成者としてクレジットされます。コミットを追加するユーザーからの承認を防止するようにプロジェクトを設定すると、このマージリクエストの適格な承認者ではなくなります。
オプション。変更を説明するために、バッチ提案のカスタムコミットメッセージを入力します。指定しない場合は、デフォルトのコミットメッセージが使用されます。



