병합 금지 정책
[병합 금지 정책]은 풀 리퀘스트에 병합 커밋이 있는 경우 사용자에게 알려줍니다. 일부 저장소는 리베이스 중심 워크플로만 사용하는 것을 선호합니다.
사용법
PR에 병합 커밋이 있으면 이 기능이 자동으로 트리거됩니다. Triagebot는 병합 커밋을 감지하면 PR에 댓글을 게시합니다. 이 댓글은 병합 금지 정책과 사용자가 병합 커밋을 피하는 방법을 설명합니다.
설정
이 기능은 triagebot.toml에 [no-merges] 테이블을 두면 저장소에서 활성화됩니다:
[no-merges]
이 테이블에 지정할 수 있는 선택적 값은 세 가지입니다:
-
exclude_titles— 제외할 제목 세그먼트 문자열 목록입니다. 이 부분 문자열을 제목에 포함한 PR은 병합 커밋 검사 대상에서 제외됩니다. 대소문자를 구분합니다. -
labels— 추가할 레이블 이름의 문자열 목록입니다. 병합 커밋이 감지되면 이 레이블들이 PR에 설정됩니다. -
message— 병합 커밋에 대해 게시되는 기본 메시지를 재정의합니다. 이 메시지 뒤에는 항상 “The following commits are merge commits:“라는 문구와 병합 커밋 목록이 이어집니다.
기본 메시지
변경 사항에 병합 커밋(부모가 여러 개인 커밋)이 있습니다. 저희는 병합 금지 정책을 두고 있으므로, 이 풀 리퀘스트가 병합되려면 해당 커밋들을 제거해야 합니다.
다음 명령으로 리베이스를 시작할 수 있습니다:
$ # rebase $ git pull --rebase https://github.com/rust-lang/rust.git HEAD $ git push --force-with-lease
예시
[no-merges]
# PRs with the following labels will be skipped
exclude_labels = ["rollup", "sync"]
# Add the following labels to PRs with merge commits
labels = ["has-merge-commits", "S-waiting-on-author"]
# Post the following warning message as a comment on PRs with merge commits
message = """
This repository does not allow merge commits.
Your PR cannot be merged until it is rebased.
"""