코드 리뷰, 머지 큐, 스팸 방지: 개발자들이 원하는 코드 포지 기능은?
코드 리뷰(Code Review) 댓글을 저장소 내에 포함하는 것이 중요하며, GitHub와 같은 외부 시스템의 위험성을 지적함.
머지 큐(Merge Queue)를 내장하여, 기여자들이 메인 브랜치에 직접 푸시하지 않고, 로봇이 변경 사항을 직렬화하고 CI를 실행하도록 함.
스팸 및 악성 행위(Spam and Abuse)를 효과적으로 처리하는 시스템의 필요성을 강조하며, GitHub의 자동화 및 인적 자원 활용 사례를 언급함.
Fossil과 git-pr과 같은 도구들이 코드 리뷰 댓글을 저장소에 통합하려는 시도를 보였으나, AI 기반으로 전환되면서 신뢰성에 대한 의문이 제기됨.
저장소 내 코드 리뷰 댓글 통합
핵심 논의는 코드 리뷰 댓글(Code Review Comments)을 저장소 자체에 포함하는 방법이다. GitHub와 같은 외부 시스템은 댓글이 HEAD 커밋의 해시에 고정되지 않아 위험하다는 지적이다. Fossil은 이 부분에 부분적으로 접근했지만, 여전히 이메일을 통한 패치 방식을 사용한다. git-pr은 리뷰 댓글을 일반 댓글처럼 취급하여 저장소에 통합하는 방식을 제시했으나, 현재 AI 기반 서비스로 전환되었다.
머지 큐(Merge Queue)의 필요성
비교적 큰 프로젝트에서는 개별 기여자가 메인 브랜치에 직접 푸시하는 것을 제한하고, 대신 '통합 준비' 상태로 표시된 커밋을 로봇이 직렬화하여 CI를 실행하고 메인 브랜치를 업데이트하는 머지 큐(Merge Queue)가 필요하다는 의견이 제시되었다. 이는 CI(Continuous Integration) 파이프라인의 효율성을 높이고, 메인 브랜치의 안정성을 유지하는 데 기여한다.
스팸 및 악성 행위(Spam and Abuse) 처리
스팸 및 악성 행위(Spam and Abuse)를 효과적으로 처리하는 시스템의 중요성이 강조되었다. GitHub는 자동화와 인적 자원(Human Triage Team)을 결합하여 이러한 문제를 해결하고 있다. 이는 모든 사용자가 계정을 생성하고 이슈를 제기할 수 있도록 하면서도, 스팸을 빠르게 제거하여 사용자 경험을 보호하는 데 기여한다.
코드 리뷰 댓글 구현 방식
코드 리뷰 댓글을 저장소에 통합하는 다양한 접근 방식이 논의되었다. 한 가지 방법은 리뷰를 댓글이 포함된 git tree로 표현하는 것이다. 이 경우, 각 댓글은 특정 코드 버전을 참조하며, 머지 충돌(Merge Conflicts)은 댓글의 순서를 정렬하여 해결할 수 있다. 다른 방법으로는 코드 내에 특정 구문(예: `//#`)을 사용하여 댓글을 추가하고, 특별한 머지 도구를 통해 처리하는 방식이 제시되었다.