변경 사항 제안
리뷰어는 Merge Request 차이 스레드에서 Markdown 구문을 사용하여 코드 변경을 제안할 수 있습니다. Merge Request 작성자(또는 해당 역할을 가진 다른 사용자)는 GitLab UI에서 제안 사항을 적용할 수 있습니다. 제안 사항을 적용하면 해당 변경을 제안한 사용자가 작성한 커밋이 Merge Request에 추가됩니다.
제안 작성
- 좌측 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
- 보조 메뉴에서 변경을 선택합니다.
- 변경하려는 코드 라인을 찾습니다.
- 단일 라인을 선택하려면 라인 번호 위로 마우스를 가져가고 이 라인에 댓글 달기를 선택합니다().
- 여러 라인을 선택하려면:
- 라인 번호 위로 마우스를 가져가고 이 라인에 댓글 달기를 선택합니다().
- 원하는 모든 라인이 포함되도록 선택하여 끌어옵니다. 자세한 내용은 다중 라인 제안을 참조하세요.
-
댓글 툴바에서 제안 삽입()을 선택합니다. GitLab은 댓글에 미리 작성된 코드 블록을 삽입합니다.
```suggestion:-0+0 여기에 선택한 라인의 내용이 표시됩니다. ```
- 미리 작성된 코드 블록을 편집하여 제안을 추가합니다.
-
댓글이 즉시 표시되길 원하는지를 선택합니다:
- 리뷰 시작 또는 리뷰에 추가를 선택하면 댓글이 보류 중인 상태로 작성됩니다(리뷰의 일부).
- 지금 댓글 추가를 선택하면 댓글이 즉시 추가됩니다.
다중 라인 제안
Merge Request 차이를 검토할 때, 단일 제안으로 최대 200줄까지 여러 라인에 대한 변경을 제안할 수 있습니다.
- 제안 작성에서 설명한 대로 선택 및 드래그하여 GitLab이 제안 블록을 생성합니다.
- 단일 라인을 선택한 다음 제안 블록의 범위 오프셋을 매뉴얼으로 편집합니다.
제안의 첫 번째 줄에 있는 범위 오프셋은 선택한 라인을 기준으로 상대적인 라인 번호를 설명합니다. 이 오프셋은 제안이 대체하려는 라인을 지정합니다. 예를 들어, 이 제안은 주석이 달린 라인 위아래로 각각 2줄을 포함합니다.
```suggestion:-2+2
## 작성자에 의한 승인 방지
기본적으로, Merge Request의 작성자는 승인할 수 없습니다. 이 설정을 변경하려면:
```
적용할 경우, 제안은 주석이 달린 라인 위아래로 2줄씩 대체합니다:
다중 라인 제안은 주석된 차이 라인 위쪽 100줄과 아래쪽 100줄로 제한됩니다. 이는 제안 당 최대 200개의 변경된 라인을 허용합니다.
지원되는 리치 텍스트 에디터 사용
- GitLab 16.1에서 [플래그](../../../../administration/feature_flags.md) 기능으로 추가됨. 기본값은 비활성화됨.
- GitLab 16.2에서 GitLab.com 및 Self-managed에서 활성화됨.
- GitLab 16.5에서
content_editor_on_issues
플래그 기능이 제거됨.
제안을 삽입할 때, WYSIWYG 리치 텍스트 에디터를 사용하여 UI에서 소스 파일의 라인 번호를 위아래로 이동할 수 있습니다.
변경된 라인을 추가하거나 제거하려면 From line 옆에서 + 또는 -를 선택합니다.
제안 적용
선행 조건:
- Merge Request의 작성자이거나 프로젝트에서 최소한 Developer 역할을 가지고 있어야 합니다.
Merge Request에서 제안된 변경사항을 직접 적용하려면:
- 좌측 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > Merge Request을 선택하고 Merge Request을 찾습니다.
- 적용하려는 제안이 포함된 댓글을 찾습니다.
- 개별적으로 제안을 적용하려면 제안 적용을 선택합니다.
- 여러 제안을 한 번에 적용하려면 일괄 제안에 추가를 선택합니다.
- 원하는 경우 사용자 정의 커밋 메시지를 제공합니다. 사용자 정의 메시지를 제공하지 않으면 기본 커밋 메시지가 사용됩니다.
- 적용을 선택합니다.
제안이 적용된 후:
- 제안이 적용됨으로 표시됩니다.
- 댓글 스레드가 해결됩니다.
- GitLab은 변경 내용이 포함된 새 커밋을 만듭니다.
- 사용자가 Developer 역할을 가지고 있는 경우, GitLab은 제안된 변경을 Merge Request 브랜치의 코드베이스로 직접 푸시합니다.
제안에서 코드 블록 중첩
fenced code block을 포함하는 제안을 추가하려면, 세 개가 아닌 네 개의 역따옴표로 제안을 둘러싸세요:
````suggestion:-0+2
```shell
git config --global receive.advertisepushoptions true
```
````
적용된 제안의 커밋 메시지 구성
GitLab은 제안을 적용할 때 기본 커밋 메시지를 사용합니다. 이 메시지는 플레이스홀더를 지원하며
변경할 수 있습니다. 예를 들어, 기본 메시지인 Apply %{suggestions_count} suggestion(s) to %{files_count} file(s)
는 두 개의 파일로부터 세 개의 제안을 적용하는 경우 다음과 같이 렌더링됩니다:
Apply 3 suggestion(s) to 2 file(s)
포크에서 생성된 Merge Request은 대상 프로젝트에서 정의된 템플릿을 사용합니다. 프로젝트의 요구 사항을 충족시키기 위해 이러한 메시지를 사용자화하고 다른 플레이스홀더 변수를 포함하세요.
선행 조건:
- Maintainer 역할이어야 합니다.
이를 위해:
- 좌측 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > Merge Request을 선택합니다.
- Merge 제안로 스크롤하고 여러분의 요구에 맞도록 텍스트를 수정합니다. 이 메시지를 위해 사용할 수 있는 플레이스홀더의 디렉터리은 지원되는 변수를 참조하세요.
지원되는 변수
적용된 제안에 대한 커밋 메시지 템플릿은 다음 변수를 지원합니다:
변수 | 설명 | 출력 예시 |
---|---|---|
%{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
|
예를 들어, 커밋 메시지를 Addresses %{username}'s review
로 출력하도록 사용자 지정하려면 사용자 지정 텍스트를 Addresses user_1's review
로 설정합니다.
일괄 제안
- GitLab 14.4에서 일괄 제안에 대한 사용자 정의 커밋 메시지가 소개됨.
필수 조건:
- 소스 브랜치에 커밋할 수 있는 프로젝트에서 역할이 있어야 합니다.
브랜치에 추가된 커밋의 수를 줄이려면 단일 커밋에 여러 제안을 적용합니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Code > Merge Request를 선택하고 Merge Request을 찾습니다.
- 적용하려는 각 제안에 대해 일괄에 제안 추가를 선택합니다.
- 선택 사항. 제안을 제거하려면 일괄에서 제거를 선택합니다.
-
원하는 제안을 추가한 후 제안 적용을 선택합니다.
여러 저자의 변경 사항을 포함하는 일괄 제안을 적용하면 결과 커밋의 저자로 표시됩니다. 프로젝트가 커밋을 추가하는 사용자의 승인을 방지하도록 구성된 경우 더는 해당 Merge Request의 승인자가 아닙니다. - 선택 사항. 일괄 제안에 대한 사용자 정의 커밋 메시지(GitLab 14.4 이후)를 제공하여 변경 사항에 설명합니다. 지정하지 않으면 기본 커밋 메시지가 사용됩니다.