変更を提案する
- プラン: 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でソースファイルの行番号を上下に移動します。
変更された行を追加または削除するには、From line(開始行)の横にある**+(+)または-**(-)を選択します。
提案を適用する
前提要件:
- マージリクエストの作成者であるか、プロジェクトのデベロッパー以上のロールを持っている必要があります。
マージリクエストから提案された変更を直接適用するには、次の手順に従います:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- コード > マージリクエストを選択し、マージリクエストを見つけます。
- 適用する提案を含むコメントを見つけます。
- 提案を個別に適用するには、提案を適用を選択します。
- 単一のコミットで複数の提案を適用するには、提案をバッチに追加を選択します。
- オプション。変更を説明するためのカスタムコミットメッセージを入力します。カスタムメッセージを入力しない場合は、デフォルトのコミットメッセージが使用されます。
- 適用を選択します。
提案を適用すると、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に設定します。
バッチ提案
前提要件:
- ソースブランチへのコミットを許可するプロジェクトのロールを持っている必要があります。
ブランチに追加されるコミットの数を減らすには、単一のコミットで複数の提案を適用します。
左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
コード > マージリクエストを選択し、マージリクエストを見つけます。
適用する提案ごとに、提案をバッチに追加を選択します。
オプション。提案を削除するには、バッチから削除を選択します。
目的の提案を追加したら、Apply suggestions(提案を適用)を選択します。
複数の作成者からの変更を含む提案のバッチを適用すると、結果のコミットにより、作成者としてクレジットされます。コミットを追加するユーザーからの承認を防止するようにプロジェクトを設定すると、このマージリクエストの適格な承認者ではなくなります。
オプション。変更を説明するために、バッチ提案のカスタムコミットメッセージを入力します。指定しない場合は、デフォルトのコミットメッセージが使用されます。


