연습 - 검토를 요구하는 규칙 추가

완료됨

이 단원에서는 GitHub에서 변경 내용을 main 분기에 병합하기 전에 검토자가 승인하도록 요구하는 규칙을 설정합니다. 또한 웹 사이트 홈페이지에서 입력 오류를 수정합니다.

현재, 팀에서는 끌어오기 요청을 생성하는 사람은 누구나 코드를 main 분기에 병합하도록 허용합니다. 검토할 필요가 없기 때문에 부정확하거나 불안정한 코드가 아무도 모르게 병합될 수 있습니다.

Andy는 또 다른 검토자가 끌어오기 요청을 추가로 검사하는 게 좋겠다고 결정합니다. 따라서 코드를 병합하기 전에 끌어오기 요청 작성자가 아닌 사용자가 코드를 검토하도록 요구하기 위해 GitHub를 설정하려고 합니다. 이 작업을 수행하는 방법을 살펴보겠습니다.

Andy를 Mara를 찾아왔고, 책상에서 이어버드로 음악을 들으며 머리를 까딱거리며 업무에 열중하고 있는 Mara를 보았습니다.

Andy: Mara, 할 말이 있어요.

Mara 좀 보세요.

Mara: 뭘 도와 드릴까요?

Andy: 빌드에 여러 가지 사소한 실수가 있어요. 오늘은 홈페이지에서 입력 오류가 발견되었어요. Amita는 이와 같은 작업에 너무 많은 시간을 허비하고 있어요. 이 오류가 main 분기에 적용되기 전에 차단해야 해요. 끌어오기 요청이 승인되기 전에 코드를 감시하는 다른 수단이 필요해요.

Mara: 해결할 수 있을 것 같은데요. GitHub에서는 다른 사용자가 검토하고 승인하기 전에는 끌어오기 요청이 병합되지 않도록 할 수 있는 방법이 있습니다.

승인 설정

이 섹션에서는 GitHub에서 변경 내용을 main 분기에 병합하기 전에 한 명 이상의 검토자에게 끌어오기 요청을 승인하도록 요구하는 규칙을 설정합니다. 그런 다음 Mara가 앞서 수행한 입력 오류에 대한 수정 사항을 푸시하여 규칙이 작동하는지 확인합니다.

규칙 추가

  1. GitHub에서 Space Game 프로젝트 리포지토리로 이동합니다.
  2. 페이지 위쪽에서 설정 탭을 선택합니다.
  3. 왼쪽 메뉴에서 분기를 선택합니다.
  4. 기본 분기로 main이 선택되어 있는지 확인합니다.
  5. 분기 보호 규칙 추가를 선택합니다.
  6. 분기 이름 패턴main을 입력합니다.
  7. 병합하기 전에 끌어오기 요청 필요 확인란을 선택합니다.
  8. 승인 필요 확인란을 선택합니다.
  9. Required approving reviews(검토 승인 필요) 값을 1로 유지합니다.
  10. 만들기를 선택합니다.
  11. 변경 내용 저장을 선택합니다.

참고

선택 목록의 맨 아래에는 Include Administrators(관리자 포함) 옵션이 있습니다. 이 옵션은 리포지토리 관리자에게 규칙을 따르도록 요구합니다. 여기서는 자신이 리포지토리 관리자이고 다른 검토자가 없기 때문에 이 옵션은 설정하지 않습니다. 이 단원에서는 학습 목적으로 고유한 끌어오기 요청을 검토하고 승인합니다.

픽스 제출

이 섹션에서는 홈페이지의 입력 오류에 대한 수정 내용을 제출합니다. “official”이라는 단어를 “oficial”로 잘못 입력했습니다.

Screenshot of the Space Game website showing a typing error.

  1. Visual Studio Code에서 터미널로 이동합니다.

  2. main 분기를 체크 아웃하려면 다음 git checkout을 실행합니다.

    git checkout main
    
  3. GitHub에서 main 분기의 최신 변경 내용을 끌어오려면 git pull을 실행합니다.

    git pull origin main
    

    다음 두 파일이 업데이트된 것을 볼 수 있습니다.

    • README.md: 빌드 배지를 표시하기 위한 Markdown 코드를 포함하고 있습니다.
    • Index. cshtml: 입력 오류를 포함하는 업데이트된 홈페이지 텍스트를 포함하고 있습니다.
  4. 오류를 해결하기 위해 다음과 같이 분기를 만들고 체크 아웃합니다.

    git checkout -B bugfix/home-page-typo
    
  5. 파일 탐색기에서 Index. cshtml을 엽니다.

  6. 오류를 찾습니다.

    <p>Welcome to the oficial Space Game site!</p>
    
  7. 줄의 내용을 변경하여 오류를 수정합니다.

    <p>Welcome to the official Space Game site!</p>
    
  8. 파일을 저장합니다.

  9. 터미널에서 변경 내용을 준비하고 커밋합니다.

    git status
    git add Tailspin.SpaceGame.Web/Views/Home/Index.cshtml
    git commit -m "Fix typing error on the home page"
    

    실제로 변경 내용을 확인하기 위해 평상시처럼 사이트를 로컬로 빌드하고 실행합니다. 이 단원에서는 간략한 설명을 위해 해당 단계는 건너뜁니다.

  10. GitHub에 분기 푸시

    git push origin bugfix/home-page-typo
    

규칙 테스트

  1. GitHub에서 bugfix/home-page-typo 분기를 찾아서 선택합니다.

    Screenshot of GitHub showing the recently pushed branch.

  2. 끌어오기 요청을 시작하려면 참가를 선택하고 끌어오기 요청 열기를 선택합니다.

  3. 포크된 리포지토리를 베이스 리포지토리로 설정합니다.

    Screenshot of GitHub confirming that the branch can be merged.

  4. 끌어오기 요청 만들기를 선택합니다.

    변경 내용을 병합하기 전에 사람이 검토해야 한다고 표시됩니다.

    Screenshot of a pull request on GitHub showing that a review is required in order to merge.

    실제로 변경 내용을 검토할 팀원을 할당합니다. 이 단원에서는 학습 목적으로 고유한 끌어오기 요청을 병합할 수 있습니다.

  5. 요구 사항이 충족될 때까지 기다리지 않고 병합(분기 보호 무시) 확인란을 선택한 다음 끌어오기 요청 병합을 선택합니다.

  6. 병합 확인을 선택합니다.

    변경 내용이 병합됩니다.

  7. bugfix/home-page-typo 분기를 삭제하려면 분기 삭제를 선택합니다.