변경 제안
리뷰어는 병합 요청(diff 스레드)에서 Markdown 구문을 사용하여 코드 변경을 제안할 수 있습니다. 병합 요청 작성자(또는 적절한 역할을 가진 다른 사용자)는 GitLab UI에서 제안 중 하나 또는 모두를 적용할 수 있습니다. 제안을 적용하면 해당 변경 사항을 제안한 사용자가 작성한 커밋이 병합 요청에 추가됩니다.
제안 생성
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 병합 요청을 선택하고 병합 요청을 찾습니다.
- 2차 메뉴에서 변경 사항을 선택합니다.
- 변경하려는 코드 행을 찾습니다.
- 단일 행을 선택하려면 행 번호 위로 마우스를 가져가고 이 행에 설명 추가를 선택합니다 ().
- 여러 행을 선택하려면:
- 행 번호 위로 마우스를 가져가고 이 행에 설명 추가를 선택합니다 ().
- 원하는 모든 행이 포함될 때까지 선택하고 끌어 옵니다. 자세한 내용은 다중 행 제안을 참조하세요.
-
설명 툴바에서 제안 삽입을 선택합니다 (). GitLab은 다음과 같이 미리 작성된 코드 블록을 댓글에 삽입합니다:
```suggestion:-0+0 선택한 행의 내용이 여기에 표시됩니다. ```
- 미리 작성된 코드 블록을 편집하여 제안을 추가합니다.
-
댓글이 즉시 표시되길 원하는 경우를 선택합니다:
- 리뷰 시작 또는 리뷰에 추가는 리뷰의 일부로 댓글을 보류 상태로 만듭니다.
- 지금 댓글 추가는 바로 댓글을 추가합니다.
다중 행 제안
병합 요청 diff를 검토할 때 다음 방법 중 하나로 여러 행(최대 200개)에 대한 변경 사항을 단일 제안으로 제안할 수 있습니다.
- 제안 생성에서 설명한대로 선택하고 끌기합니다. GitLab은 제안 블록을 생성합니다.
- 단일 행을 선택한 다음 제안 블록에서 범위 오프셋을 수동으로 편집합니다.
제안의 첫 번째 행에있는 범위 오프셋은 선택한 행을 기준으로 변경하려는 여러 행의 번호를 설명합니다. 오프셋은 제안이 대체하려는 행을 지정합니다. 예를 들어, 이 제안은 설명된 행 위아래로 2개의 행을 포함합니다:
```suggestion:-2+2
## 작성자에 의한 승인 방지
기본적으로 병합 요청의 작성자는 승인할 수 없습니다. 이 설정을 변경하려면:
```
적용하면 제안이 설명된 행 위로부터 2개, 아래로부터 2개까지 대체합니다:
여러 행에 대한 제안은 설명된 diff 행 위쪽으로 최대 100개의 행과 아래쪽으로 최대 100개의 행에 대해 제한됩니다. 이는 제안 당 최대 200개의 변경된 행을 허용합니다.
Rich 텍스트 편집기 사용
- GitLab 16.1에 도입되었습니다. 기본적으로 비활성화 된
content_editor_on_issues
라는 플래그와 함께.- GitLab 16.2에서 GitLab.com 및 Self-managed에서 활성화되었습니다.
- GitLab 16.5에서 기능 플래그
content_editor_on_issues
가 제거되었습니다.
제안을 삽입할 때 WYSIWYG rich text editor를 사용하여 UI에서 소스 파일의 행 번호를 위아래로 옮길 수 있습니다.
변경된 행을 추가하거나 빼려면 From line 옆에서 + 또는 -를 선택합니다.
제안 적용
전제 조건:
- 병합 요청의 작성자이거나 프로젝트에서 적어도 개발자 역할을 가져야 합니다.
병합 요청에서 제안된 변경 사항을 직접 적용하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 병합 요청을 선택하고 병합 요청을 찾습니다.
- 적용하려는 제안이 포함된 댓글을 찾습니다.
- 개별적으로 제안을 적용하려면 제안 적용을 선택합니다.
- 단일 커밋에서 여러 제안을 적용하려면 배치에 제안 추가를 선택합니다.
- 선택 사항. 사용자 정의 커밋 메시지를 제공하여 변경 내용을 설명합니다. 사용자 지정 메시지를 제공하지 않으면 기본 커밋 메시지가 사용됩니다.
- 적용을 선택합니다.
제안을 적용한 후:
- 제안은 적용됨으로 표시됩니다.
- 댓글 스레드가 해결됩니다.
- GitLab은 변경 사항과 함께 새 커밋을 만듭니다.
- 사용자가 개발자 역할을 가지고 있으면 GitLab은 제안된 변경 내용을 병합 요청 브랜치의 코드베이스로 직접 푸시합니다.
건의 사항에 코드 블록 중첩
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)
포크에서 생성된 병합 요청은 대상 프로젝트에서 정의된 템플릿을 사용합니다. 프로젝트의 요구 사항에 맞게 이러한 메시지를 사용자 정의하고 다른 플레이스홀더 변수를 포함하세요.
필수 조건:
- 관리자(Maintainer) 역할이 있어야 합니다.
다음을 수행하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 병합 요청을 선택합니다.
- 건의 병합으로 스크롤하고 문구를 필요에 맞게 변경합니다. 이 메시지에 사용할 수 있는 플레이스홀더 목록은 지원되는 변수를 참조하세요.
지원되는 변수
적용된 건의에 대한 커밋 메시지 템플릿은 다음 변수를 지원합니다:
Variable | Description | Output example |
---|---|---|
%{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
|
예를 들어, 커밋 메시지를 user_1의 리뷰에 대한 주소
로 사용자 정의하려면 사용자 정의 텍스트를 Addresses %{username}'s review
로 설정하세요.
일괄적인 건의 사항
- GitLab 14.4에서 일괄적인 건의에 대한 사용자 정의 커밋 메시지가 도입되었습니다.
필수 조건:
- 소스 브랜치에 커밋할 수 있는 프로젝트 내에서 역할이 있어야 합니다.
브랜치에 추가되는 커밋 수를 줄이려면 여러 건의를 한 번에 하나의 커밋으로 적용하세요.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 코드 > 병합 요청을 선택하고 병합 요청을 찾습니다.
- 적용하려는 각 건의에 대해 일괄 추가를 선택합니다.
-
원하는 건의를 모두 추가한 후 건의 적용을 선택합니다.
경고: 여러 작성자의 변경 사항이 포함된 건의 일괄을 적용하면 결과 커밋의 저자로 표시됩니다. 프로젝트가 커밋을 추가하는 사용자의 승인을 방지하도록 구성된 경우 해당 병합 요청에 대한 승인자로 더 이상 자격이 없어집니다.
- 선택 사항. 일괄적인 건의에 대해 사용자 정의 커밋 메시지를 제공합니다(GitLab 14.4 이상). 지정하지 않으면 기본 커밋 메시지가 사용됩니다.