병합 금지 정책
병합 금지 정책은 풀 리퀘스트에 병합 커밋이 있는 경우 이를 사용자에게 알립니다. 일부 저장소는 리베이스 중심의 워크플로만 사용하는 것을 선호합니다.
사용법
이 기능은 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.
"""