Go 위키: GerritBot

Jmnote (토론 | 기여)님의 2024년 1월 31일 (수) 10:46 판 (새 문서: GerritBot은 코드 리뷰를 위해 GitHub PR(Pull Request)을 [https://go-review.googlesource.com/ Gerrit]으로 가져오는 데 사용되는 도구입니다. Go팀이 Gerrit에서...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

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은 기본적으로 저장소에 도입하도록 제안된 패치인 "변경 목록"의 약자입니다. 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슬래시 명령(예: ) 을 사용하여 GerritBot의 설명을 전환할 수 있습니다 /comments off.

3 피드백 및 버그 보고서

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

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

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


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

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