Discourse 코드 리뷰

:discourse2: 요약 Discourse Code Review 플러그인은 Discourse에서 GitHub 커밋을 검토할 수 있는 기능을 제공합니다.
:hammer_and_wrench: 리포지토리 링크 https://github.com/discourse/discourse-code-review
:open_book: 설치 가이드 Discourse에 플러그인 설치하는 방법

기능

####这是什么?

Discourse Code Review 플러그인은 GitHub 코드 리포지토리와 양방향 통합을 제공합니다. 이를 통해 팀은 assign, whispers, notification, custom workflows 등 Discourse의 기능과 플러그인을 활용하여 리포지토리에 대한 커밋을 검토할 수 있습니다. 리포지토리에 대한 각 커밋은 하나의 토픽이 됩니다. 토픽에 대한 답변은 GitHub에 미러링됩니다. 통합은 양방향이라는 의미로, Discourse에서 댓글을 달면 GitHub에서 볼 수 있고, GitHub에서 댓글을 달면 Discourse에서 볼 수 있습니다.

이 플러그인은 여러 리포지토리의 모든 커밋을 검토해야 하는 팀을 위한 매우 강력한 워크플로우를 제공합니다.

이를 통해 여러 팀원이 리포지토리에 적용된 모든 변경 사항을 인지할 수 있도록 보장할 수 있습니다. 후속 조치가 필요한 커밋을 표시하고, 검토 작업을 할당하는 등의 작업이 가능합니다.

참고: 승인 가능한 토픽을 볼 때, 키보드의 y 키를 사용하여 커밋을 더 빠르게 승인할 수 있습니다.

실제 동작을 볼 수 있나요?

Discourse는 리포지토리 관리를 위해 내부적으로 이 플러그인을 사용하고 있습니다. Discourse 측 예시는 여기서 볼 수 있습니다:

GitHub에서는 동일한 토픽이 다음과 같이 보입니다:

설정

이 플러그인은 리포지토리 및 리포지토리 내 변경 사항을 감지하기 위해 GitHub 웹훅에 의존합니다. 최소한의 설정을 위해 다음 설정을 비밀 문자열로 설정해야 합니다.

code review github webhook secret

GitHub 리포지토리에서 설정한 후, 다음 내용으로 웹훅을 설정하세요:

Payload URL: https://YOUR_DISCOURSE/code-review/webhook
Content Type: application/json
Secret: code review github webhook secret
Event Types:

  • Commit comments
  • Issue comments
  • Pull requests
  • Pull request reviews
  • Pull request review comments
  • Pushes

이 플러그인은 다음과 같은 추가 사이트 설정을 제공합니다:

code review api username : GitHub는 허용하는 익명 API 요청 수가 매우 제한적입니다. 이 설정을 사용하면 Discourse 사용자의 계정 키를 /comments/commit 요청에 사용할 수 있습니다. 이를 통해 레이트 리밋에 도달할 가능성을 크게 줄일 수 있습니다.

code review catch up commits : 새로운 리포지토리를 발견할 때 "추적"하여 토픽을 생성할 커밋 수.

code review default parent category: 플러그인이 생성하는 카테고리용 기본 부모 카테고리 선택

code review pending tag: 모든 미검토 커밋에 적용할 태그, 기본값은 pending

code review approved tag: 승인된 커밋에 적용할 태그, 기본값은 approved

code_review_followup_tag: 후속 커밋에 적용할 태그, 기본값은 follow-up

code review allow self approval: 스태프가 자신의 커밋을 승인할 수 있습니까?

code review default mute new categories: code review가 생성한 새 카테고리는 기본적으로 사용자에게 음소거됩니다

code review skip duration minutes: 커밋의 건너뛰기 버튼을 클릭하면 이 설정으로 지정된 분 동안 해당 커밋이 다시 표시되지 않습니다.

변경 이력(CHANGELOG)

할 일(TODO)

추가 정보

Discourse가 이 플러그인을 사용하는 방법

요약 - 이 플러그인은 Discourse 팀의 GitHub 코드 리뷰 사용 방식을 보완하도록 설계되었습니다.

자세한 정보

@sam의 글:

  • 우리는 여전히 GitHub UI를 사용하여 PR을 사용하며, 많은 변경 사항에 대한 PR을 하는 것을 좋아합니다. 여기서는 아무것도 변하지 않았습니다. GitHub는 훌륭하고, 우리는 GitHub를 좋아합니다. 그들은 아직 반영되지 않은 변경 사항에 대해 훌륭한 워크플로우를 제공합니다. 하지만…

  • 직접 커밋된 변경 사항에 대한 GitHub의 워크플로우는 끔찍합니다.

  • Review는 GitHub로만 채울 수 없는 공백을 메워줍니다. 우리는 Discourse가 소유한 여러 git 리포지토리에 대한 모든 변경 사항에 대해 적어도 한 명의 팀원이 검토하기를 원합니다. GitHub가 제공하는 UI를 사용해야 한다면 아무도 풀 리퀘스트를 하는 것 외에는 아무것도 할 수 없게 될 것입니다. 이는 우리를 극도로 느리게 만들 것입니다.

  • 특정 변경 사항에 대해 전 세계가 알지 못하도록 비공개로 소통할 수 있는 기능이 필요합니다. 예를 들어: 이 훌륭한 수정 사항을 <거대한 회사 이름>에 최대한 빨리 배포해야 합니다. @sam, 당신이 처리해 줄 수 있나요?

  • 변경 사항을 승인하거나 후속 조처를 요청할 수 있는 기능이 필요합니다. 이는 GitHub UI가 제공하지 않는 것입니다.

  • 특정 커밋을 사용자에게 할당할 수 있는 기능이 필요합니다. 예를 들어 @sam이 몇 가지 실수를 포함한 커밋을 만든 경우, 그에게 해당 특정 커밋을 직접 할당하고 후속 조치가 필요하다고 표시한 후 후속 조치가 이루어지는 과정을 추적할 수 있는 것이 좋습니다.

  • Discourse는 대화 전체에서 매우 훌륭하며, 작은 기능들이 큰 차이를 만듭니다. 사람들이 타이핑하는 것을 볼 수 있습니다. 변경 사항이 나타나기 위해 페이지를 새로고침할 필요가 없습니다. 인용이 정말 좋고, 이미지 업로드도 좋고, 그 외 많은 것들이 좋습니다.

  • Discourse는 읽음 상태 처리에 매우 뛰어납니다. 모든 것을 한 번씩 읽었는지 매우 강한 보장을 받을 수 있지만, GitHub에서는 어떤 커밋을 읽었고 어떤 것을 읽지 않았는지 알 수 없습니다. 우리는 정보의 홍수에 대응하는 데 incredibly 효율적입니다.

그리고 목록은 계속됩니다…

따라서 review는 GitHub의 보완재 역할을 합니다. 우리는 현재 아직 반영되지 않은 변경 사항에 대응하기 위해 GitHub를 사용하고, 이미 반영된 변경 사항을 적절히 처리하기 위해 review를 사용합니다.

72개의 좋아요