끌어오기 요청을 통한 협업

완료됨

끌어오기 요청을 사용하면 GitHub의 리포지토리에 푸시한 변경 내용을 다른 사용자에게 알릴 수 있습니다.

끌어오기 요청이 전송되면 관련 당사자는 변경 내용 집합을 검토하고, 잠재적 수정 사항을 논의하고, 필요한 경우 추가 작업 커밋을 푸시할 수 있습니다.

끌어오기 요청은 일반적으로 팀 및 조직이 공유 리포지토리 모델을 사용하여 협업하는 데 사용됩니다.

모든 사용자는 단일 리포지토리를 공유하며 토픽 분기는 기능을 개발하고 변경 내용을 격리하는 데 사용됩니다.

GitHub의 많은 오픈 소스 프로젝트는 끌어오기 요청을 사용하여 기여자의 변경 내용을 관리합니다.

이를 통해 프로젝트 유지 관리자에 대한 변경 내용을 알릴 수 있습니다.

또한 기본 분기로 병합되기 전에 변경 내용 집합에 대한 코드 검토 및 일반 토론을 시작합니다.

끌어오기 요청은 코드 검토와 병합을 단일 협업 프로세스로 결합합니다.

분기에서 버그 또는 새로운 기능을 수정했으면 새 끌어오기 요청을 만듭니다.

변경 내용을 검토하고 응답할 수 있도록 팀 구성원을 끌어오기 요청에 추가합니다.

끌어오기 요청을 사용하여 진행 중인 작업을 검토하고 변경 내용에 대한 피드백을 빨리 받아볼 수 있습니다.

소유자가 언제든지 끌어오기 요청을 중단할 수 있으므로 변경 내용이 병합된다는 보장은 없습니다.

분기, 토론 및 병합

코드 검토

끌어오기 요청에서 수행되는 코드 검토는 단지 버그를 찾기 위한 것이 아니라 관련된 문제를 테스트하기 위한 것입니다.

코드 검토를 잘하면 나중에 비용이 많이 들 수 있는 문제로 이어질 수 있는 명확하지 않은 문제를 포착합니다.

코드 검토는 팀의 생산성을 향상시키는 잘못된 병합 및 손상된 빌드에서 팀을 보호하는 데 도움이 됩니다.

이 검토는 병합 전에 이러한 문제를 포착하여 원치 않는 변경으로부터 중요한 분기를 보호합니다.

코드 검토에서 다양한 검토자를 통해 전문 지식을 교차 퉁합하고 문제 해결 전략을 분산합니다.

기술과 지식을 확산하면 더욱 강력하고 복원력 있는 팀이 됩니다.

우수한 피드백 제공

고품질의 검토는 고품질의 피드백으로부터 시작됩니다. 끌어오기 요청에서 유용한 피드백에 대한 핵심은 다음과 같습니다.

  • 적절한 사용자가 끌어오기 요청을 검토하도록 합니다.
  • 코드가 수행하는 작업에 대해 검토자가 알고 있는지 확인합니다.
  • 작업 가능하고 건설적인 피드백을 제공합니다.
  • 댓글에 즉시 회신합니다.

끌어오기 요청에 검토자를 할당할 때 올바른 검토자 집합을 선택했는지 확인합니다.

코드의 작동 방식을 파악하고 다른 영역에서 작업하는 개발자를 포함하여 아이디어를 공유할 수 있는 검토자가 필요합니다.

또한 변경 내용에 대한 명확한 설명을 제공하고 수정 사항 또는 기능을 실행하는 코드를 빌드할 수 있는 검토자가 필요합니다.

검토자는 동의하지 않는 변경 내용에 대한 피드백을 제공 하려고 시도해야 합니다. 문제를 확인하고 다르게 수행할 작업에 대한 특정 제안을 제공해야 합니다.

이 피드백은 명확한 의도를 가지고 있으며 끌어오기 요청의 소유자가 쉽게 이해할 수 있습니다.

끌어오기 요청 소유자는 댓글에 회신하거나 제안을 수락 하거나 제안된 변경 사항이 적합하지 않은 이유를 설명해야 합니다.

경우에 따라 제안하는 것이 좋을 수 있지만 변경 내용이 끌어오기 요청 범위를 벗어납니다.

이러한 제안을 수행하고 끌어오기 요청과 별도로 새 작업 항목 및 기능 분기를 만들어 이러한 변경을 수행합니다.

정책을 사용하여 분기 보호

리포지토리에는 일반적으로 중요도로 인해 추가 보호가 필요한 주 분기를 포함하여 하나 이상의 분기가 포함됩니다. Azure Repos는 이 목표를 달성하는 데 도움이 되는 구현을 고려해야 하는 몇 가지 정책 기반 메커니즘을 제공합니다.

이러한 메커니즘의 기본 전제는 끌어오기 요청에 제약 조건을 적용하는 것입니다. 예를 들어 끌어오기 요청을 병합하기 전에 지정된 검토자의 최소 승인 수를 요구하는 것과 같은 특정 코드 검토 정책을 적용하는 것이 포함될 수 있습니다. 집단적 전문 지식을 활용하여 코드 변경의 품질과 안정성을 향상시킬 수 있습니다.

또한 연결된 작업 항목 확인 정책을 구현하는 것이 좋습니다. 이렇게 하면 모든 끌어오기 요청이 작업 항목에 연결되어 컨텍스트를 제공하고 추적 가능성을 승격합니다. 주석 확인 정책은 끌어오기 요청을 병합하기 전에 모든 코드 검토 주석의 주소를 지정하는 데 도움이 됩니다.

자동화된 코드 분석, 테스트 및 규정 준수 검사와 관련된 정책은 통합 전에 변경 내용이 미리 정의된 표준을 충족하는지 확인합니다. 병합 형식을 제한하면 제어 분기 기록을 유지하는 데 도움이 됩니다. 예를 들어 빠른 전달 및 스쿼시 병합만 허용하는 옵션이 있습니다.

새 코드 버전을 중요한 분기로 병합할 수 있도록 허용하기 전에 새 코드 버전의 클린 빌드를 의무화할 수도 있습니다. 이렇게 하면 병합된 변경 내용이 빌드 오류 또는 회귀 문제를 발생시키지 않습니다. 상태 검사는 외부 서비스에서 생성된 신호에 따라 끌어오기 요청을 완료하는 데 사용할 수 있습니다. 예를 들어 자동화된 테스트 및 코드 분석을 실행하는 Azure Pipelines에서 이러한 신호를 생성할 수 있습니다.

필요한 정책이 구성된 모든 분기는 직접 푸시를 자동으로 차단하여 모든 변경 내용에 대한 끌어오기 요청을 효과적으로 적용합니다. 또한 이러한 분기는 삭제할 수 없습니다.