Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

병합 금지 정책

[병합 금지 정책]은 풀 리퀘스트에 병합 커밋이 있는 경우 사용자에게 알려줍니다. 일부 저장소는 리베이스 중심 워크플로만 사용하는 것을 선호합니다.

사용법

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.
"""

구현

src/handlers/check_commits/no_merges.rs를 참고하십시오.