Go 위키: GerritBot

GerritBot은 코드 리뷰를 위해 GitHub PR(Pull Request)을 Gerrit으로 가져오는 데 사용되는 도구입니다. Go팀이 Gerrit에서 모든 리뷰를 수행하기 때문에 생성되었지만, GitHub PR을 통해 코드를 기여하는 데 더 일반적인 작업흐름을 제공하고자 합니다.

1 작업 흐름[ | ]

  • 사용자는 PR을 허용하는 다른 GitHub 프로젝트와 마찬가지로 GitHub 리포지토리에 대해 GitHub PR을 업로드할 수 있습니다.
  • 그런 다음 PR 변경사항을 GerritBot에서 가져오고 Gerrit 리뷰에 대한 링크가 포함된 메시지가 GitHub PR에 게시됩니다.
  • 모든 의견은 Gerrit 내에서 처리됩니다. GitHub PR에 대한 모든 의견은 무시됩니다.
  • PR 작성자는 Gerrit의 피드백을 처리하기 위해 PR에서 사용하는 브랜치에 커밋을 계속 업로드할 수 있습니다.
  • 커밋 메시지에 대한 모든 변경은 Gerrit 또는 git을 통하지 않고 GitHub PR의 제목과 설명을 편집하여 수행해야 합니다. (자세한 내용은 아래 FAQ를 참조하세요.)
  • 초안 PRWIP로 가져옵니다.
  • 코드를 병합할 준비가 되면 관리자는 Gerrit에 변경사항을 제출하고 GerritBot은 이슈를 닫습니다.
  • 마찬가지로 Gerrit에서 변경사항이 닫히거나 취소되면 해당 PR도 닫힙니다.

2 FAQ[ | ]

2.1 Gerrit에 가입하려면 Google 계정이 필요합니까? 내 GitHub 계정을 사용하여 로그인할 수 없는 이유는 무엇입니까?[ | ]

Gerrit에 등록 하려면 Gmail 또는 기타 Google 계정이 필요합니다. 이는 Gerrit 인스턴스를 실행하는 인프라의 제한 사항이며 통제할 수 없으며, CLA에 서명하려면 먼저 Google 계정이 필요합니다. 이는 먼저 귀하의 기여를 수락하기 위한 요구 사항입니다.

2.2 Gerrit에 댓글에 답글을 남겼는데 저 외에는 볼 수 없습니다.[ | ]

Gerrit의 코드에 대한 의견에 대한 답변은 먼저 초안으로 저장되며 "답글" 버튼을 통해 게시해야 합니다. 이는 리뷰 "세션"당 여러 이메일을 방지하기 위한 것이며 GitHub의 보류 중인 리뷰 작업 흐름 과 유사합니다. 버튼의 '답장' 텍스트 옆에 숫자가 표시되면 게시할 대기 중인 초안이 있다는 의미입니다.

2.3 GerritBot은 최종 커밋 메시지를 어떻게 결정합니까?[ | ]

GitHub PR의 제목과 설명을 사용하여 Gerrit 변경에 대한 커밋 메시지를 구성합니다. GitHub 웹 인터페이스(Gerrit 또는 git 아님)를 사용하여 이를 편집할 수 있습니다. PR 설명은 GitHub PR의 "대화" 탭에 있는 첫 번째 텍스트 영역에 있습니다. "..." 메뉴의 "편집" 옵션을 통해 편집할 수 있습니다.

참고: Gerrit는 Github에서 메시지를 편집할 때 볼 수 있는 일반 텍스트를 가져오며, 편집하기 전에 GitHub에서 볼 수 있는 렌더링된 텍스트 는 가져오지 않습니다.

관련된 혼동이 흔히 발생하는 영역 중 하나는 이슈 참조와 관련된 것입니다. 예를 들어 GerritBot 또는 리뷰자는 이슈 참조 URL을 사용하지 말라고 요청할 수 있습니다. Gerrit에서는 이슈에 대한 전체 URL을 볼 수 있지만 GitHub 웹 인터페이스에서는 다음과 같은 이슈 참조만 볼 수 #12345있으며 URL의 출처가 불분명할 수 있습니다. 이는 GitHub의 렌더링된 보기와 기본 원시/일반 텍스트 간의 혼동으로 인해 발생할 수 있습니다. GitHub 웹 인터페이스에 GitHub에서 텍스트를 편집하는Fixes https://github.com/golang/go/issues/12345 동안 같은 내용이 표시되면 대신 또는 같은 내용으로 변경하세요 . 이슈 참조에 대한 자세한 내용은 기여 가이드를 참조하세요 .Fixes #12345Fixes golang/go#12345

GitHub에서 PR을 편집한 후 Gerrit 변경사항이 업데이트되기까지 10분 정도 걸릴 수 있습니다.

2.4 CL은 무엇인가요? Gerrit 변경사항은 무엇인가요?[ | ]

CL은 "변경 목록(change list)"의 약자로, 기본적으로 저장소에 도입하도록 제안된 패치입니다. Go 프로젝트는 Gerrit를 사용하여 각 CL을 주의 깊게 리뷰합니다. CL의 예시는 https://go.dev/cl/508475 입니다.

게릿 변경사항(Gerrit Change)은 CL의 또 다른 이름입니다.

2.5 다른 사람의 CL을 리뷰하는 데 도움을 줄 수 있나요?[ | ]

네, 이는 매우 권장되며 Gerrit, Go 프로젝트의 코드 리뷰 프로세스 및 Go 표준 라이브러리, 런타임, 컴파일러 등의 내부 기능에 익숙해질 수 있는 좋은 방법입니다.

여기에서 현재 열려 있는 CL을 찾아보고 별표 아이콘을 클릭하여 관심 있는 CL에 대한 업데이트를 구독할 수 있습니다.

초기 리뷰 분류를 돕기 위해 코드 전문가가 될 필요는 없습니다. 자세한 내용은 원예 위키 페이지 에서 CL 리뷰 지원 섹션을 참조하세요 .

2.6 Gerrit에서는 변경당 하나의 커밋이 필요하다고 들었습니다. 내 PR에 여러 커밋을 업로드할 수 있나요?[ | ]

원하는 만큼 커밋을 업로드할 수 있습니다. GerritBot은 커밋을 Gerrit가 처리할 수 있는 하나의 변경사항으로 압축하는 작업을 처리합니다.

2.7 GerritBot이 내 변경사항의 소유자인 이유는 무엇입니까?[ | ]

이는 Gerrit가 다른 사용자 역할을 처리하는 방식에 공개된 버그가 있기 때문입니다. 이슈가 해결되면 원래 작성자도 변경사항의 소유자가 됩니다.

2.8 GerritBot에게 내 PR에 대한 댓글 게시를 중단하도록 요청할 수 있나요?[ | ]

슬래시 명령어(예: /comments off)를 사용하여 GerritBot의 설명을 토글할 수 있습니다.

3 피드백 및 버그 보고서[ | ]

이슈를 등록하고 제목에 접두사 x/build/cmd/gerritbot:를 사용하세요.

4 기능을 추가하거나 버그를 수정하고 싶습니다.[ | ]

  • 기능/버그가 사소하지 않은 경우 먼저 이슈를 등록해 주세요.
  • 코드는 x/build/cmd/gerritbot( GitHub , Gerrit ) 에 있습니다.

이 콘텐츠는 Go 위키의 일부입니다.

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}