연습: 끌어오기 요청을 사용하여 Azure Repos 협업
코드 문제가 더 빨리 발견되면 더 쉽게 수정할 수 있습니다. 따라서 개발 팀에서는 가능한 한 개발 프로세스에 남은 코드 품질 검사를 푸시하기 위해 노력하고 있습니다.
이름에서 알 수 있듯이 분기 정책은 서버에서 분기에 적용될 수 있는 기본 제공 정책 집합을 제공합니다.
변경 내용을 적용하려면 서버 분기로 푸시되는 모든 변경 내용이 이러한 정책을 따라야 합니다.
정책은 팀의 코드 품질 및 변경 관리 표준을 적용하는 좋은 방법입니다. 이 레시피에서 기본 분기에 분기 정책을 구성 하는 방법에 대해 알아봅니다.
준비
기본 제공 분기 정책에는 빌드 유효성 검사 및 병합 전략 적용과 같은 여러 정책이 포함되어 있습니다. 이 레시피에서는 코드 검토 워크플로를 설정하는 데 필요한 분기 정책만 중점적으로 다룹니다.
작업 방법
파트 제한이 없는 팀 포털에서 myWebApp Git 리포지토리의 분기 뷰를 엽니다. 기본 분기를 선택하고, 풀 다운의 상황에 맞는 메뉴에서 분기 정책을 선택합니다.
정책 보기에서 기본 제공 정책을 제공합니다. 최소 검토자 수를 1로 설정합니다.
요청자가 자신의 변경 내용을 승인할 수 있도록 허용 옵션을 사용하면 제출자가 변경 내용을 자체 승인할 수 있습니다.
경험이 많은 팀에서는 이를 허용할 수 있지만 일반적으로는 피해야 합니다.
댓글 확인 정책과 함께 검토 정책을 사용합니다. 이를 통해 변경 내용을 적용하기 전에 코드 검토 댓글을 확인하도록 적용할 수 있습니다. 요청자는 댓글의 피드백을 가져와 새 작업 항목을 만들고 변경 내용을 확인할 수 있습니다. 최소한 코드 검토 댓글이 기본 분기에 코드를 수락하여 손실되지 않도록 보장합니다.
요구 사항은 팀 프로젝트에서 코드 변경을 유발합니다. 작업을 트리거한 작업 항목이 변경 내용에 연결되지 않은 경우 시간이 지남에 따라 수행된 이유를 이해하기가 어려워집니다. 이는 변경 기록을 검토할 때 특히 유용합니다. 연결된 작업 항목 확인 정책을 구성하여 연결된 작업 항목이 없는 변경 내용을 차단합니다.
끌어오기 요청이 자동으로 발생하면 검토자를 자동으로 추가하는 옵션을 선택합니다. 변경되는 코드 영역에 따라 추가되는 검토자를 매핑할 수 있습니다.
작동 방식
분기 정책이 마련되면 이제 기본 분기가 완전히 보호됩니다.
기본 분기에 변경 내용을 푸시하는 유일한 방법은 먼저 다른 분기에서 변경한 다음 끌어오기 요청을 발생시켜 변경 승인 워크플로를 트리거하는 것입니다.
작업 항목 허브의 기존 사용자 스토리 중 하나에서 새 분기를 만들도록 선택합니다.
작업 항목에서 새 분기를 만들면 해당 작업 항목이 자동으로 분기에 연결됩니다.
필요에 따라 만들기 워크플로의 일부로 분기를 사용하여 작업 항목을 두 개 이상 포함할 수 있습니다.
분기를 만들 때 이름에 접두사를 지정하여 분기가 이동할 폴더를 만듭니다.
앞의 예제에서 분기는 폴더로 이동합니다. 이는 사용량이 많은 환경에서 분기를 구성하는 좋은 방법입니다.
웹 포털에서 새로 만든 분기를 선택한 후 HomeController.cs 파일을 편집하여 다음 코드 조각을 포함하고 변경 내용을 분기에 커밋합니다.
아래 이미지에서는 커밋 버튼을 클릭하여 파일을 편집한 후 변경 내용을 직접 커밋할 수 있음을 알 수 있습니다.
팀 포털의 파일 경로 컨트롤은 검색을 지원합니다.
파일 경로 검색 결과 드롭다운에 표시되는 문자부터 시작하여 해당 디렉터리 아래의 Git 리포지토리에 있는 모든 파일을 보려면 파일 경로를 입력합니다.
웹 포털의 코드 편집기는 대괄호 일치 및 공백 설정과 같은 Azure DevOps Server의 몇 가지 새로운 기능을 제공합니다.
명령 팔레트를 눌러서 로드할 수 있습니다. 다른 많은 새로운 옵션 중, 이제 파일 미니 맵, 축소 및 확장, 기타 표준 작업을 사용하여 파일을 전환할 수 있습니다.
새 분기에서 기본 분기로 이러한 변경 내용을 푸시하려면 끌어오기 요청 보기에서 끌어오기 요청을 만듭니다.
새 분기를 원본으로 선택하고 기본을 대상 분기로 선택합니다.
새 끌어오기 요청 양식은 markdown을 지원하므로 markdown 구문을 사용하여 설명을 추가할 수 있습니다.
설명 창에서는 @mentions 및 #을 지원하여 작업 항목을 연결합니다.
끌어오기 요청이 만들어지며, 개요 페이지에는 정책의 변경 내용과 상태가 요약되어 있습니다.
파일 탭에는 변경 내용 목록과 이전 버전 및 현재 버전 간의 차이점이 표시됩니다.
코드 파일에 푸시된 모든 업데이트가 업데이트 탭에 표시되고 모든 커밋 목록이 커밋 탭 아래에 표시됩니다.
파일 탭 열기: 이 보기는 선별로, 파일별로, 그리고 전체에서 코드 주석을 지원합니다.
주석은 링크 작업 항목에 멘션 및 #에 대한 @를 모두 지원하며 텍스트는 markdown 구문을 지원합니다.
코드 주석은 끌어오기 요청 워크플로에 유지됩니다. 코드 주석은 여러 번의 검토 반복을 지원하며 중첩된 응답에서 잘 작동합니다.
검토자 정책을 사용하면 변경 승인의 일부로 코드 검토 워크플로를 사용할 수 있습니다.
이는 팀에서 기본 분기에 푸시된 코드 변경 내용에 대해 협업할 수 있는 좋은 방법입니다.
필요한 검토자 수가 끌어오기 요청을 승인하면 완료할 수 있습니다.
검토 후 끌어오기 요청을 자동 완성하도록 표시할 수도 있습니다. 모든 정책이 성공적으로 컴파일되면 끌어오기 요청을 자동 완성합니다.
추가 사항
분기가 실수로 삭제된 상태였던 적이 있나요? 어떤 일이 있었는지 파악하기가 쉽지 않습니다.
이제 Azure DevOps Server에서는 삭제된 분기 검색을 지원합니다. 이는 삭제한 사용자 및 삭제 시기를 파악하는 데 도움이 됩니다. 인터페이스를 사용하면 분기를 다시 만들 수도 있습니다.
삭제된 분기는 검색 결과에서 노이즈를 줄이기 위해 정확한 이름으로 검색하는 경우에만 표시됩니다.
삭제된 분기를 검색하려면 분기 검색 상자에 전체 분기 이름을 입력합니다. 해당 텍스트와 일치하는 기존의 모든 분기가 반환됩니다.
삭제된 분기 목록에서 정확히 일치하는 항목을 검색하는 옵션도 표시됩니다.
일치하는 항목이 발견되면 삭제한 사용자 및 삭제 시기를 확인할 수 있습니다. 분기를 복원할 수도 있습니다. 분기를 복원하면 마지막에 가리킨 커밋에서 다시 만들어집니다.
그러나 정책 및 사용 권한은 복원되지 않습니다.