티스토리 뷰
26. Visual Studio Code 및 Azure DevOps로 풀 요청(Pull Request) 작업하기
zerobig-k8s 2020. 4. 6. 07:35<참조> https://azuredevopslabs.com/labs/azuredevops/pullrequests/
이번 글에서는 VIsual Studio Code와 Azure DevOps를 사용하여 Pull Requests를 수행하는 방법에 대해 살펴 보고자 한다. |
개요
팀은 코드를 마스터 브랜치에 병합하기 전에 Pull request(풀 요청)를 통해 기능 브랜치 변경에 대한 피드백을 제공 할 수 있다. 검토자는 제안 된 변경 사항을 단계별로 진행하고 의견을 남기며 코드를 승인 또는 거부하도록 의사를 표할 수 있다. Azure DevOps는 풀 요청을 생성, 검토 및 승인 할 수 있는 풍부한 경험을 제공한다.
선행 조건
-
C# 확장이 설치된 Visual Studio Code
- 이 랩을 진행하려면 선행 지침에서 과제1을 완료해야 한다.
- 이 랩은 선행 조건으로 Visual Studio Code와 Azure DevOps에서 Git으로 버전 제어하기 1편, 2편을 완료해야 한다.
실습 1: 풀 요청 작업하기
Git 랩을 마칠 때, 새로운 브랜치를 만들고 코드 일부를 변경했다. 이제 변경 사항을 새 브랜치에 커밋하고 서버로 푸시해야한다. 그 상태가 되면 브랜치를 마스터와 병합 할 수 있도록 풀 요청을 작성할 수 있다.
과제 1: 비주얼 스튜디오 코드 구성하기
1. Visual Studio Code로 돌아온다.
2. Source Control 탭을 선택한다. Category.cs에 대한 커밋되지 않은 변경 사항이 있음을 인식해야 한다. “Category change”의 주석을 입력하고 Ctrl + Enter를 눌러 로컬 release 브랜치에 커밋한다.
3. Synchronize Changes 버튼을 클릭하여 커밋을 서버 브랜치로 푸시한다.
4. Ctrl|Shift+P를 눌러하여 Command Palette를 연다.
5. "Team"을 입력하고 Team: Create Pull Request 이 나오면 선택한다. 새 브라우저 탭에서 현재 브랜치에 대한 새 풀 요청이 열립니다.
6. New Pull Request 양식에는 검토자가 필요로 하는 핵심 정보와 검토자가 필요한 정보가 이미 포함되어 있어야 한다. 그렇지 않은 경우 master로 병합 할 브랜치로 release 를 선택한다.
7. 이 중 하나를 사용자 정의 할 수 있으며 정책에 따라 일부가 필요할 수 있다. 또한 작성시 브랜치와 연관된 작업 항목이 참조된다. Create를 클릭한다.
과제 2: 풀 요청 관리하기
1. Visual Studio Code로 돌아간다.
2. 화면 하단에 Browse your pull requests 버튼을 클릭한다.
3. 방금 생성 한 풀 요청을 선택한다. 새 브라우저 탭이 열린다.
4. Overview 탭에는 작성 양식에 지정된 모든 주요 정보와 요청 승인 및 완료 옵션이 있다.
5. 커밋과 관련된 파일을 검토하려면 파일 탭을 선택한다.
6. 원한다면, 드롭 다운하여 특정 업데이트를 선택할 수 있습니다.
7. 소스 파일 옆에 있는 Add comment 단추를 클릭한다. 마크 다운을 사용하여 설명을 입력하고 Comment를 클릭하여 저장한다. 커밋하기 전에 댓글을 실시간으로 미리 볼 수 있다.
8. 새로운 주석은 코드와 일치하게 배치된다. 이를 통해 적절한 컨텍스트 내에서 코드의 행과 섹션에 대해 매우 쉽게 토론 할 수 있다.
9. 새 주석은 또한 풀 요청의 일부로 추적된다. 풀 요청이 완료되기 전에 모든 댓글이 해결 될 것으로 예상되므로 이 편리한 마커를 통해 검토해야 할 다른 사항이 있는지 알려준다.
10. 주석을 업데이트하여 Resolved로 표시한다.
11. 이제 추적도 업데이트 된다.
12. Updates 탭을 선택한다. 브랜치의 업데이트에 대한 세부 정보가 포함되어 있다.
13. Commits 탭을 선택하면 지점에 대한 커밋을 검토 할 수 있다.
14. 모든 것이 제대로 된 것 같으므로 풀 요청을 승인한다.
15. 승인자가 Sign off 했으므로 풀 요청을 Complete 한다.
16. 풀 요청 대화 상자에서 기본 메시지를 승인 할 수 있다. 첫 번째 옵션은 병합 중인 브랜치에 연결된 작업 항목을 완료하는 것이다. 병합 후 대상 브랜치를 삭제하는 옵션과 병합 중에 변경 사항을 스쿼시(squash changes) 하는 기능도 있다. 스쿼시 병합은 풀 요청을 완료 할 때 토픽 브랜치의 Git 히스토리를 요약 할 수 있는 병합 옵션이다. 토픽 브랜치의 각 커밋이 기본 브랜치의 히스토리에 추가되는 대신, 스쿼시 병합은 모든 파일 변경 사항을 가져와 기본 브랜치의 단일 새 커밋에 추가한다. 스쿼시 병합을 사용하면 팀의 워크 플로우를 변경하지 않고도 기본 브랜치 기록을 깨끗하고 쉽게 확인할 수 있다. Complete merge를 클릭한다.
17. 병합이 완료되면 풀 요청이 완료됨으로 표시되어야 한다.
18. Pull Requests 홈으로 돌아간다.
19. Completed 탭을 선택하고 새로 방문한 것처럼 풀 요청을 클릭한다.
20. 풀 요청을 검토하고 필요한 경우 Cherry-pick 또는 Revert를 검토 할 수 있다. 체리 피킹은 한 브랜치에서 다른 브랜치에 적용할 특정 커밋을 선택하는 프로세스를 의미하는데 개념적으로 복사/붙여 넣기 작업과 유사하다.
21. 작업 항목에서 연결된 Work Items 중 하나를 클릭한다.
22. Work Items이 Done으로 표시된 것에 주목한다.
과제 3: Git 브랜치 및 풀 요청 정책 관리하기
프로젝트와 팀의 규모가 복잡해짐에 따라 더 많은 프로세스를 자동화하여 품질을 보장 할 수 있다.
1. Project settings을 연다.
2. Repos 아래 Repositories를 선택한다.
3. PartsUnlimited 리포지토리를 선택한다. Azure DevOps의 다른 모든 항목과 마찬가지로 보안을 매우 세부적으로 관리 할 수 있다. Options 탭을 선택한다. 이를 통해 사용자가 저장소를 포크하도록 허용할지에 대한 여부, 논의된 작업 항목이 자동으로 링크되는지에 대한 여부 등과 같은 유용한 정책을 설정할 수 있다.
4. master 브랜치를 선택한다. 저장소와 마찬가지로 보안 설정에 대한 많은 것들을 제어 할 수 있다. 브랜치에서 시행 할 다양한 정책을 정의 할 수도 있다. Policies를 클릭한다.
5. Azure DevOps 브랜치 정책은 리포지토리에 품질 관리 수준을 적용하는 데 매우 효과적이다. 예를 들어 최소 검토자 수를 요구하고 연결된 작업 항목을 확인하고 모든 주석이 해결되도록 요구하는 등의 작업으로 풀 요청을 제어 할 수 있다. 성공적인 빌드 및 외부 승인 서비스 구성을 통해 유효성 검사를 요구할 수도 있다. 자체 승인자를 포함해야하는 특정 코드 섹션이 있는 경우 여기에 포함시킬 수도 있다.
6. Require a minimum number of reviewers를 클릭한다. 기본적으로 최소 두 명의 검토자가 풀 요청을 승인해야 하며 (기본적으로는) 원 저작자가 그 두 명 중 하나가 아니어야 한다.
7. Add automatic reviewers를 클릭한다.
8. 자신을 Reviewer로 추가하고 For pull requests affecting these folders를 “/PartsUnlimited-aspnet45/src/PartsUnlimitedWebsite/Controllers/*“"로 설정한다.
9. Save changes를 클릭하여 변경 사항을 정책에 저장한다.
참고 : 추가 실습을 완료하려는 경우 위의 과제 3에서 변경한 내용을 되돌려야 할 수도 있다. |
'Azure와 함께 하는 DevOps' 카테고리의 다른 글
28. Visual Studio Code 및 GitHub로 풀 요청(Pull Request) 작업하기 (0) | 2020.04.20 |
---|---|
27. Visual Studio Code 및 GitHub에서 Git으로 버전 제어하기 (0) | 2020.04.13 |
25 Visual Studio Code와 Azure DevOps에서 Git으로 버전 제어하기 2편 (0) | 2020.03.30 |
24 Visual Studio Code와 Azure DevOps에서 Git으로 버전 제어하기 1편 (0) | 2020.03.23 |
23 전달 계획으로 팀간 프로젝트 일정 관리하기 (0) | 2020.03.16 |