

Amazon CodeCatalyst는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 마이그레이션하는 방법](migration.md) 단원을 참조하십시오.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon CodeCatalyst에서 풀 요청을 사용하여 코드 검토
<a name="source-pull-requests"></a>

풀 요청은 나와 프로젝트 멤버가 검토하고, 주석을 추가하며, 한 브랜치에서 다른 브랜치로 코드를 변경하기 위한 기본적인 방법입니다. 풀 요청을 사용하여 중요하지 않은 변경 내용이나 수정 사항, 중요 기능 추가 또는 릴리스된 소프트웨어의 새 버전에 대한 코드 변경 내용을 공동으로 검토할 수 있습니다. 문제를 사용하여 프로젝트의 작업을 추적하는 경우 특정 이슈를 풀 요청에 연결하여 풀 요청의 코드 변경으로 어떤 문제가 해결되고 있는지 추적할 수 있습니다. 풀 요청을 생성, 업데이트, 설명, 병합 또는 종료하면 풀 요청의 작성자는 물론 풀 요청의 필수 또는 선택 검토자에게 자동으로 이메일이 전송됩니다.

**작은 정보**  
프로파일의 일부로서 이메일을 수신할 풀 요청 이벤트를 구성할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 Slack 및 이메일 알림 전송](notifications-manage.md) 섹션을 참조하세요.

풀 요청에는 소스 리포지토리에 검토하려는 코드가 포함된 소스 브랜치와 검토한 코드를 병합하려는 대상 브랜치, 두 개의 브랜치가 필요합니다. 소스 브랜치에는 AFTER 커밋이 포함되며 이 커밋은 대상 브랜치에 병합하려는 변경 내용을 포함합니다. 대상 브랜치에는 BEFORE 커밋이 포함되며, 이 커밋은 풀 요청 브랜치가 대상 브랜치에 병합되기 전 코드의 상태를 나타냅니다.

**참고**  
풀 요청을 생성하는 동안 나타나는 차이는 소스 브랜치의 최신 커밋과 대상 브랜치의 최신 커밋의 차이입니다. 풀 요청을 만들면 선택한 풀 요청의 수정본과 풀 요청을 만들 때 대상 브랜치의 끝이었던 커밋의 차이점이 표시됩니다. Git의 차이점 및 병합 기반에 대한 자세한 내용은 Git 설명서의 [git-merge-base](https://git-scm.com/docs/git-merge-base)를 참조하세요.

특정 소스 리포지토리 및 브랜치에 대한 풀 요청이 생성되는 동안 프로젝트 작업의 일부로 풀 요청을 만들고, 보고, 검토하고, 닫을 수 있습니다. 풀 요청을 보고 작업하기 위해 소스 리포지토리를 볼 필요는 없습니다. 풀 요청 상태는 생성할 때 **열기**로 설정됩니다. 풀 요청은 상태가 **병합됨**으로 변경되는 CodeCatalyst 콘솔에서 병합하거나 상태가 **종결됨**으로 변경될 때까지 열려 있습니다.

코드를 검토했으면 다음 방법 중 하나를 사용하여 풀 요청 상태를 변경할 수 있습니다.
+ CodeCatalyst 콘솔에서 풀 요청을 병합합니다. 풀 요청의 소스 브랜치에 있는 코드는 대상 브랜치로 병합됩니다. 풀 요청 상태가 **병합됨**으로 변경됩니다. 다시 **열기**로 변경할 수 없습니다.
+ 브랜치를 로컬로 병합하고 변경 사항을 푸시한 다음 CodeCatalyst 콘솔에서 풀 요청을 닫습니다.
+ 병합하지 않고 풀 요청을 닫으려면 CodeCatalyst 콘솔을 사용하세요. 이렇게 하면 상태가 **종료됨**으로 변경되고 소스 브랜치의 코드가 대상 브랜치로 병합되지 않습니다.

풀 요청을 생성하려면 먼저 다음을 수행해야 합니다.
+ 검토하려는 코드 변경 사항을 브랜치(소스 브랜치)에 커밋하고 푸시합니다.
+ 프로젝트에 대한 알림을 설정하여 풀 리퀘스트를 만들 때 실행되는 워크플로에 대해 다른 사용자가 알림을 받을 수 있도록 하세요. (이 단계는 선택 사항이며, 권장 사항은 아닙니다.)

**Topics**
+ [풀 요청 생성](pull-requests-create.md)
+ [풀 요청 보기](pull-requests-view.md)
+ [풀 요청을 승인 규칙과 병합하기 위한 요구 사항 관리](source-pull-requests-approval-rules.md)
+ [풀 요청 검토](pull-requests-review.md)
+ [풀 요청 업데이트](pull-requests-update.md)
+ [풀 요청 병합](pull-requests-merge.md)
+ [풀 요청 닫기](pull-requests-close.md)

# 풀 요청 생성
<a name="pull-requests-create"></a>

풀 요청을 생성하면 변경 내용을 다른 브랜치에 병합하기 전에 다른 사용자가 코드 변경을 보고 검토할 수 있습니다. 먼저 코드 변경을 위한 브랜치를 생성합니다. 이 브랜치를 풀 요청의 소스 브랜치라고도 합니다. 리포지토리에 변경 사항을 커밋하고 푸시한 후, 소스 브랜치의 내용을 대상 브랜치의 내용과 비교하는 풀 요청을 생성할 수 있습니다.

Amazon CodeCatalyst 콘솔의 특정 브랜치, 풀 요청 페이지 또는 프로젝트 개요에서 풀 요청을 생성할 수 있습니다. 특정 브랜치에서 풀 요청을 생성하면 풀 요청 생성 페이지에 리포지토리 이름과 소스 브랜치가 자동으로 제공됩니다. 풀 요청을 생성하면 풀 요청에 대한 업데이트와 풀 요청이 병합되거나 종료되는 시기를 알려주는 이메일이 자동으로 수신됩니다.

**참고**  
풀 요청을 생성하는 동안 나타나는 차이는 소스 브랜치의 최신 커밋과 대상 브랜치의 최신 커밋의 차이입니다. 풀 요청이 생성되면, 표시된 차이는 선택한 풀 요청의 수정본과 풀 요청을 생성할 때 대상 브랜치의 가장 최신 커밋 간에 발생합니다. Git의 차이점 및 병합 기반에 대한 자세한 내용은 Git 설명서의 [git-merge-base](https://git-scm.com/docs/git-merge-base)를 참조하세요.

풀 요청을 생성할 때 **설명 쓰기** 기능을 사용하여 Amazon Q가 풀 요청에 포함된 변경 사항에 대한 설명을 자동으로 생성하도록 할 수 있습니다. 이 옵션을 선택하면 Amazon Q는 코드 변경 사항이 포함된 소스 브랜치와 이러한 변경 사항을 병합할 대상 브랜치 간의 차이를 분석합니다. 그런 다음 이러한 변경 사항에 대한 요약과 이러한 변경의 의도 및 효과에 대한 최상의 해석을 생성합니다. 이 기능은 CodeCatalyst 풀 요청에 대해 미국 서부(오리건) 리전에서만 사용할 수 있습니다. 연결된 리포지토리의 풀 요청에는 **설명 쓰기** 기능을 사용할 수 없습니다.

**참고**  
**Amazon Bedrock:implements 자동 침해 탐지로 구동**됩니다. AWS [https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html) 소프트웨어 개발용 Amazon Q Developer Agent의 **설명 쓰기**, **콘텐츠 요약 생성**, **권장 작업**, **Amazon Q를 사용하여 프로젝트에 기능을 생성하거나 추가**, **Amazon Q에 문제 할당** 기능은 Amazon Bedrock에 구축되므로, 사용자는 Amazon Bedrock에서 구현된 제어 기능을 최대한 활용하여 안전, 보안 및 인공 지능(AI)을 책임 있게 사용할 수 있습니다.

**풀 요청을 생성하려면**

1. 프로젝트로 이동합니다.

1. 다음 중 하나를 수행하세요.
   + 탐색 창에서 **코드**를 선택하고 **풀 요청**을 선택한 다음 **풀 요청 생성**을 선택합니다.
   + 리포지토리 홈 페이지에서 **추가**를 선택한 다음 **풀 요청 생성**을 선택합니다.
   + 프로젝트 페이지에서 **풀 요청 생성**을 선택합니다.

1. **소스 리포지토리**에서 지정된 소스 리포지토리가 커밋된 코드가 포함된 리포지토리인지 확인합니다. 이 옵션은 리포지토리의 메인 페이지에서 풀 요청을 생성하지 않은 경우에만 나타납니다.

1. **대상 브랜치**에서 코드를 검토한 후 병합할 브랜치를 선택합니다.

1. **소스 브랜치**에서 커밋된 코드가 포함된 브랜치를 선택합니다.

1. **풀 요청 제목**에 다른 사용자가 검토해야 할 사항과 이유를 이해하는 데 도움이 되는 제목을 입력합니다.

1. (선택 사항) **풀 요청 설명**에서 문제에 대한 연결 또는 변경 사항에 대한 설명과 같은 정보를 제공합니다.
**작은 정보**  
CodeCatalyst가 풀 요청에 포함된 변경 사항에 대한 설명을 자동으로 생성하도록 **설명 쓰기**를 선택할 수 있습니다. 자동으로 생성된 설명은 풀 요청에 추가한 후에 변경할 수 있습니다.  
이 기능을 사용하려면 스페이스에 생성형 AI 기능을 활성화해야 하며 연결된 리포지토리의 풀 요청에 사용할 수 없습니다. 자세한 내용은 [생성형 AI 기능 관리](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)를 참조하세요.

1. (선택 사항) **문제**에서 **문제 연결**을 선택한 다음 목록에서 문제를 선택하거나 해당 ID를 입력합니다. 문제를 연결 해제하려면 연결 해제 아이콘을 선택합니다.

1. (선택 사항) **필수 검토자**에서 **필수 검토자 추가**를 선택합니다. 프로젝트 멤버 목록에서 추가할 멤버를 선택합니다. 필수 검토자는 풀 요청을 대상 브랜치에 병합하기 전에 변경 사항을 승인해야 합니다.
**참고**  
검토자를 추가할 때 필수 검토자이면서 동시에 선택적 검토자로 추가할 수 없습니다. 자신을 검토자로 추가할 수 없습니다.

1. (선택 사항) **선택적 검토자**에서 **선택적 검토자 추가**를 선택합니다. 프로젝트 멤버 목록에서 추가할 멤버를 선택합니다. 선택적 검토자는 풀 요청을 대상 브랜치에 병합하기 전에 변경 사항을 요구 사항으로 승인할 필요가 없습니다.

1. 브랜치 간의 차이점을 검토합니다. 풀 요청에 표시되는 차이점은 소스 브랜치의 수정본과 풀 요청이 생성된 시점의 대상 브랜치의 헤드 커밋인 병합 기반 간의 변경 사항입니다. 변경 사항이 표시되지 않으면 브랜치가 동일하거나 소스와 대상 모두에 대해 동일한 브랜치를 선택했을 수 있습니다.

1. 풀 요청에 검토하려는 코드와 변경 사항이 포함되어 있다고 판단되면 **생성**을 선택합니다.
**참고**  
풀 요청을 생성한 후 설명을 추가할 수 있습니다. 풀 요청 또는 파일의 개별 줄 및 풀 요청 전반에 설명을 추가할 수 있습니다. @ 기호와 파일 이름을 사용하여 파일과 같은 리소스에 대한 연결을 추가할 수 있습니다.<a name="pull-requests-create-from-branch"></a>

**브랜치에서 풀 요청을 생성하려면**

1. 풀 요청을 생성하려는 프로젝트로 이동합니다.

1. 탐색 창에서 **소스 리포지토리**를 선택한 다음, 검토할 코드 변경 사항이 있는 브랜치를 포함하는 리포지토리를 선택합니다.

1. 기본 브랜치 이름 옆의 드롭다운 화살표를 선택한 다음, 목록에서 원하는 브랜치를 선택합니다. 리포지토리의 모든 브랜치를 보려면 **모두 보기**를 선택합니다.

1. **추가**를 선택한 다음 **풀 요청 생성**을 선택합니다.

1. 리포지토리와 소스 브랜치는 미리 선택되어 있습니다. **대상 브랜치**에서 코드를 검토한 후 병합할 브랜치를 선택합니다. **풀 요청 제목**에 다른 프로젝트 사용자가 검토해야 하는 내용과 이유를 이해하는 데 도움이 되는 제목을 입력합니다. 선택적으로 CodeCatalyst 의 관련 문제에 대한 링크를 붙여넣거나 변경 사항에 대한 설명을 추가하는 등 **풀 요청 설명** 에 자세한 정보를 제공합니다.
**참고**  
풀 요청 생성 이벤트를 위해 실행하도록 구성된 워크플로는 풀 요청의 대상 브랜치가 워크플로에 지정된 브랜치 중 하나와 일치하는 경우 풀 요청이 생성된 후 실행됩니다.

1. 브랜치 간의 차이점을 검토합니다. 변경 사항이 표시되지 않으면, 브랜치가 동일하거나, 소스와 대상 모두에 대해 동일한 브랜치를 선택했을 수 있습니다.

1. (선택 사항) **문제**에서 **문제 연결**을 선택한 다음 목록에서 문제를 선택하거나 해당 ID를 입력합니다. 문제를 연결 해제하려면 연결 해제 아이콘을 선택합니다.

1. (선택 사항) **필수 검토자**에서 **필수 검토자 추가**를 선택합니다. 프로젝트 멤버 목록에서 추가할 멤버를 선택합니다. 필수 검토자는 풀 요청을 대상 브랜치에 병합하기 전에 변경 사항을 승인해야 합니다.
**참고**  
검토자를 필수 검토자이면서 동시에 선택적 검토자로 추가할 수 없습니다. 자신을 검토자로 추가할 수 없습니다.

1. (선택 사항) **선택적 검토자**에서 **선택적 검토자 추가**를 선택합니다. 프로젝트 멤버 목록에서 추가할 멤버를 선택합니다. 선택적 검토자는 풀 요청을 대상 브랜치에 병합하기 전에 변경 사항을 승인할 필요가 없습니다.

1. 풀 요청에 검토하려는 변경 사항이 포함되어 있고 필수 검토자가 포함되어 있다고 판단되면, **생성**을 선택합니다.

브랜치가 풀 요청의 대상 브랜치와 일치하는 워크플로를 실행하도록 구성된 경우 풀 요청이 생성된 후 **풀 요청 세부** 정보 영역의 **개요**에서 해당 워크플로 실행에 대한 정보를 볼 수 있습니다. 자세한 내용은 [워크플로에 트리거 추가](workflows-add-trigger-add.md) 단원을 참조하십시오.

# 풀 요청 보기
<a name="pull-requests-view"></a>

Amazon CodeCatalyst 콘솔에서 프로젝트의 풀 요청을 볼 수 있습니다. 프로젝트 요약 페이지에는 프로젝트에 대한 모든 열린 풀 요청이 표시됩니다. 상태에 관계없이 모든 풀 요청을 보려면, 프로젝트의 풀 요청 페이지로 이동합니다. 풀 요청을 볼 때 생성된 풀 요청의 변경 사항에 대한 모든 설명의 요약을 남기도록 선택할 수 있습니다.

**참고**  
**Amazon Bedrock:implements 자동 침해 탐지로 구동**됩니다. AWS [https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html) 소프트웨어 개발용 Amazon Q Developer Agent의 **설명 쓰기**, **콘텐츠 요약 생성**, **권장 작업**, **Amazon Q를 사용하여 프로젝트에 기능을 생성하거나 추가**, **Amazon Q에 문제 할당** 기능은 Amazon Bedrock에 구축되므로, 사용자는 Amazon Bedrock에서 구현된 제어 기능을 최대한 활용하여 안전, 보안 및 인공 지능(AI)을 책임 있게 사용할 수 있습니다.<a name="pull-requests-view-open-project"></a>

**열린 풀 요청을 보려면**

1. 풀 요청을 보려는 프로젝트로 이동합니다.

1. 프로젝트 페이지에 풀 요청을 생성한 사람, 풀 요청에 대한 브랜치를 포함하는 리포지토리, 풀 요청이 생성된 날짜에 대한 정보를 포함하여 열린 풀 요청이 표시됩니다. 소스 리포지토리별로 열린 풀 요청 보기를 필터링할 수 있습니다.

1. 모든 풀 요청을 보려면 **모두 보기**를 선택합니다. 선택기를 사용하여 옵션 중에서 선택할 수 있습니다. 예를 들어, 모든 풀 요청을 보려면 **모든 상태** 및 **모든 작성자**를 선택합니다.

   또는 탐색 창에서 **코드**를 선택한 다음 **풀 요청**을 선택한 다음, 선택기를 사용하여 보기를 구체화합니다.

1. **풀 요청** 페이지에서 ID, 제목, 상태 등을 기준으로 풀 요청을 정렬할 수 있습니다. 풀 요청 페이지에 표시되는 정보와 정보의 양을 사용자 지정하려면, 기어 아이콘을 선택합니다.

1. 특정 풀 요청을 보려면 목록에서 선택합니다.

1. 이 풀 요청과 연결된 워크플로 실행의 상태를 보려면 **개요**를 선택하고, **워크플로 실행**에서 풀 요청의 **풀 요청 세부 정보** 영역의 정보를 검토합니다.

   워크플로가 풀 요청 생성 또는 수정 이벤트로 구성되어 있고 워크플로의 대상 브랜치 요구 사항이 풀 요청에 지정된 대상 브랜치와 일치하는 경우, 워크플로 실행이 발생합니다. 자세한 내용은 [워크플로에 트리거 추가](workflows-add-trigger-add.md) 단원을 참조하십시오.

1. 연결된 문제를 보려면 **개요**를 선택하고 **문제**에서 **풀 요청 세부 정보**의 정보를 검토합니다. 연결된 문제를 보려면 목록에서 해당 ID를 선택합니다.

1. (선택 사항) 풀 요청 수정본의 코드 변경에 남아 있는 설명에 대해 요약을 생성하려면 **콘텐츠 요약 생성**을 선택합니다. 요약에는 전체 풀 요청에 남아 있는 설명이 포함되지 않습니다.
**참고**  
이 기능을 사용하려면 생성형 AI 기능이 스페이스에 활성화되어 있어야 하고, 연결된 리포지토리에는 사용할 수 없으며, 미국 서부(오리건) 리전에서만 사용할 수 있습니다. 자세한 내용은 [생성형 AI 기능 관리](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)를 참조하세요.

1. 풀 요청에서 코드 변경 사항을 보려면 **변경**을 선택합니다. 풀 요청에서 변경 사항이 있는 파일의 수와 설명이 있는 파일은 **변경된 파일**에서 빠르게 볼 수 있습니다. 폴더 옆에 표시되는 설명 수는 해당 폴더의 파일에 대한 설명 수를 나타냅니다. 폴더를 확장하여 폴더의 각 파일에 대한 설명 수를 확인합니다. 특정 코드 줄에 남아 있는 모든 설명을 볼 수도 있습니다.

   
**참고**  
콘솔에 풀 요청의 모든 변경 사항을 표시할 수 있는 것은 아닙니다. 예를 들어, 콘솔에서 Git 하위 모듈을 볼 수 없으므로 풀 요청에서 하위 모듈의 차이를 볼 수 없습니다. 일부 차이는 표시하기에 너무 클 수 있습니다. 자세한 내용은 [CodeCatalyst의 소스 리포지토리 할당량](source-quotas.md) 및 [파일 보기파일 변경 내역 보기](source-files-view.md) 섹션을 참조하세요.

1. 이 풀 요청에 대한 품질 보고서를 보려면 **보고서**를 선택합니다.
**참고**  
풀 요청에 나타나는 보고서를 생성하도록 워크플로를 구성해야 합니다. 자세한 내용은 [워크플로를 사용한 테스트워크플로를 사용한 테스트](test-workflow-actions.md) 단원을 참조하십시오.

# 풀 요청을 승인 규칙과 병합하기 위한 요구 사항 관리
<a name="source-pull-requests-approval-rules"></a>

풀 요청을 생성할 때 개별 풀 요청에 필수 또는 선택적 검토자를 추가하도록 선택할 수 있습니다. 그러나 특정 대상 브랜치에 병합할 때 모든 풀 요청이 충족해야 하는 요구 사항을 생성할 수도 있습니다. 이러한 요구 사항을 승인 규칙이라고 합니다. 리포지토리의 브랜치에 대해 승인 규칙이 구성됩니다. 대상 브랜치에 승인 규칙이 구성된 풀 요청을 생성할 때는 풀 요청을 해당 브랜치에 병합하기 전에 필요한 검토자의 승인 외에도 해당 규칙의 요구 사항을 충족해야 합니다. 승인 규칙을 생성하면 가 기본 브랜치와 같은 브랜치에 병합하기 위한 품질 표준을 유지하는 데 도움이 될 수 있습니다.

소스 리포지토리의 기본 브랜치에 적용되는 승인 규칙은 다른 브랜치에 적용되는 승인 규칙과 약간 다르게 작동합니다. 기본 브랜치에 적용되는 모든 규칙은 기본 브랜치로 지정한 모든 브랜치에 자동으로 적용됩니다. 이전에 기본 브랜치로 설정된 브랜치에는 해당 브랜치에 적용된 규칙이 계속 유지됩니다.

승인 규칙을 만들 때는 현재와 미래의 프로젝트 사용자가 해당 규칙을 어떻게 충족할지 고려해야 합니다. 예를 들어 프로젝트에 6명의 사용자가 있고 대상 브랜치에 병합하기 전에 5명의 승인이 필요한 승인 규칙을 만들면, 풀 리퀘스트를 만든 사람을 제외한 모든 사람이 해당 풀 리퀘스트를 승인해야 병합할 수 있는 규칙을 만든 것이 됩니다.

**참고**  
CodeCatalyst 프로젝트에서 승인 규칙을 만들고 관리하려면 프로젝트 관리자 역할이 있어야 합니다. 연결된 리포지토리에 대한 승인 규칙은 생성할 수 없습니다.

 승인 규칙을 삭제할 수는 없지만 승인 횟수가 0이 되도록 업데이트하여 규칙을 효과적으로 제거할 수는 있습니다.<a name="view-edit-approval-rules"></a>

**풀 요청에 대한 대상 브랜치의 승인 규칙 보기 및 편집**

1. 리포지토리가 있는 프로젝트로 이동합니다.

1. 프로젝트의 소스 리포지토리 목록에서 리포지토리 이름을 선택합니다. 아니면 탐색 창에서 **코드**를 선택한 다음 **소스 리포지토리**를 선택합니다.

   승인 규칙을 보려는 리포지토리를 선택합니다.

1. 리포지토리의 개요 페이지에서 **브랜치**를 선택합니다.

1. **승인 규칙** 열에서 **보기**를 선택하여 리포지토리의 각 브랜치에 대한 규칙 상태를 확인합니다.

   **최소 승인 수**에서 숫자는 풀 요청을 해당 브랜치에 병합하기 위해 필요한 승인 수에 해당합니다.

1. 승인 규칙을 생성하거나 변경하려면 **설정 관리**를 선택합니다. 소스 리포지토리 설정 페이지에 있는 **승인 규칙**에서 **편집**을 선택합니다.
**참고**  
승인 규칙을 편집하려면 **프로젝트 관리자** 역할이 있어야 합니다.

1. **브랜치**의 드롭다운 목록에서 승인 규칙을 구성할 브랜치의 이름을 선택합니다. **최소 승인 수**에서 숫자를 입력한 다음 **저장**을 선택합니다.

# 풀 요청 검토
<a name="pull-requests-review"></a>

Amazon CodeCatalyst 콘솔을 사용하여 풀 요청에 포함된 변경 사항을 공동으로 검토하고 의견을 제시할 수 있습니다. 소스 브랜치와 대상 브랜치 간의 차이 또는 풀 요청의 개정 간의 차이에서 개별 코드 줄에 설명을 추가할 수 있습니다. 풀 요청의 코드 변경에 남아 있는 설명의 요약을 생성하여, 다른 사용자가 남긴 피드백을 빠르게 이해할 수 있도록 할 수 있습니다. 코드 작업을 위한 개발 환경을 생성하도록 선택할 수도 있습니다.

**참고**  
**Amazon Bedrock:implements 자동 침해 탐지로 구동**됩니다. AWS [https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html) 소프트웨어 개발용 Amazon Q Developer Agent의 **설명 쓰기**, **콘텐츠 요약 생성**, **권장 작업**, **Amazon Q를 사용하여 프로젝트에 기능을 생성하거나 추가**, **Amazon Q에 문제 할당** 기능은 Amazon Bedrock에 구축되므로, 사용자는 Amazon Bedrock에서 구현된 제어 기능을 최대한 활용하여 안전, 보안 및 인공 지능(AI)을 책임 있게 사용할 수 있습니다.

**작은 정보**  
프로파일의 일부로서 이메일을 수신할 풀 요청 이벤트를 구성할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 Slack 및 이메일 알림 전송](notifications-manage.md) 단원을 참조하십시오.<a name="merge-base"></a>

풀 요청은 풀 요청의 개정과 풀 요청을 생성할 때 대상 브랜치의 최신 커밋이었던 커밋 간의 차이를 보여줍니다. 이를 병합 기반이라고 합니다. Git의 차이점 및 병합 기반에 대한 자세한 내용은 Git 설명서의 [git-merge-base](https://git-scm.com/docs/git-merge-base)를 참조하세요.

**작은 정보**  
콘솔에서 작업할 때, 특히 풀 요청이 한동안 열려있는 경우, 검토를 시작하기 전에 풀 요청에 사용할 수 있는 최신 수정본이 있는지 확인하기 위해 브라우저를 새로 고치는 것이 좋습니다.

**CodeCatalyst 콘솔에서 풀 요청을 검토하려면**

1. 프로젝트로 이동합니다.

1. 다음 중 하나를 수행하여 풀 요청으로 이동합니다.
   + 풀 요청이 프로젝트 페이지에 나열되면, 목록에서 선택합니다.
   + 풀 요청이 프로젝트 페이지에 나열되지 않은 경우, **모두 보기**를 선택합니다. 필터와 정렬을 사용하여 풀 요청을 찾은 다음, 목록에서 선택합니다.
   + 탐색 창에서 **코드**를 선택한 다음, **풀 요청**을 선택합니다.

1. 목록에서 검토하려는 풀 요청을 선택합니다. 필터 표시줄에 이름의 일부를 입력하여 풀 요청 목록을 필터링할 수 있습니다.

1. **개요**에서 풀 요청의 이름과 제목을 검토할 수 있습니다. 풀 요청 자체에 남아 있는 설명을 생성하고 볼 수 있습니다. 워크플로 실행, 연결된 문제, 검토자, 풀 요청 작성자, 실행 가능한 병합 전략에 대한 정보를 포함하여 풀 요청의 세부 정보를 볼 수도 있습니다.
**참고**  
특정 코드 줄에 남긴 설명은 **변경 사항**에 표시됩니다.

1. (선택 사항) 전체 풀 요청에 적용되는 설명을 추가하려면 **풀 요청에 대한 설명**을 확장한 다음 **설명 생성** 선택합니다.

1. (선택 사항) 이 풀 요청 수정본의 변경 사항에 대해 남아 있는 모든 설명의 요약을 보려면 **설명 요약 생성**을 선택합니다.
**참고**  
이 기능을 사용하려면 생성형 AI 기능이 스페이스에 대해 활성화되어 있어야 하며 미국 서부(오리건) 리전에서만 사용할 수 있습니다. 자세한 내용은 [생성형 AI 기능 관리](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)를 참조하세요.

1. **변경**에서 대상 브랜치와 풀 요청의 최신 수정본 간의 차이점을 확인할 수 있습니다. 수정본이 두 개 이상 있는 경우, 차이에서 비교할 수정본을 변경할 수 있습니다. 수정에 대한 자세한 내용은 [개정](source-concepts.md#revision-concept) 섹션을 참조하세요.
**작은 정보**  
풀 요청에서 변경 사항이 있는 파일의 수와 설명이 있는 파일은 **변경된 파일**에서 빠르게 볼 수 있습니다. 폴더 옆에 표시되는 설명 수는 해당 폴더의 파일에 대한 설명 수를 나타냅니다. 폴더를 확장하여 폴더의 각 파일에 대한 설명 수를 확인합니다.

1. 차이가 표시되는 방식을 변경하려면, **통합** 및 **분할** 중에서 선택합니다.

1. 풀 요청의 행에 설명을 추가하려면, 설명을 작성할 행으로 이동합니다. 해당 행에 나타나는 설명 아이콘을 선택하고 설명을 입력한 다음 **저장**을 선택합니다.

1. 풀 요청의 수정본 간 또는 소스 브랜치와 대상 브랜치 간의 변경 사항을 보려면, **비교**에서 사용 가능한 옵션을 선택합니다. 수정본에서 행에 대한 설명은 해당 수정본에 보존됩니다.

1. 풀 요청 트리거에 대한 코드 적용 범위 보고서를 생성하도록 워크플로를 구성한 경우, 관련 풀 요청에서 행 및 브랜치 적용 범위 조사 결과를 볼 수 있습니다. 코드 적용 범위 조사 결과를 숨기려면 **코드 적용 범위 숨기기**를 선택합니다. 자세한 내용은 [코드 적용 범위 보고서](test-workflow-actions.md#test-code-coverage-reports) 단원을 참조하십시오.

1. 풀 요청에서 코드 변경하려는 경우, 풀 요청에서 개발 환경을 생성할 수 있습니다. **개발 환경 생성**을 선택합니다. 선택적으로 개발 환경의 이름을 추가하거나 구성을 편집한 다음, **생성**을 선택합니다.

1. **보고서**에서 이 풀 요청의 품질 보고서를 볼 수 있습니다. 수정본이 두 개 이상 있는 경우, 차이에서 비교할 수정본을 변경할 수 있습니다. 보고서를 이름, 상태, 워크플로, 작업 및 유형별로 필터링할 수 있습니다.
**참고**  
풀 요청에 나타나는 보고서를 생성하도록 워크플로를 구성해야 합니다. 자세한 내용은 [작업에서 품질 보고서 구성](test-config-action.md) 단원을 참조하십시오.

1. 특정 보고서를 보려면, 목록에서 선택합니다. 자세한 내용은 [워크플로를 사용한 테스트워크플로를 사용한 테스트](test-workflow-actions.md) 단원을 참조하십시오.

1. 이 풀 요청의 검토자로 등록되어 있고 변경 사항을 승인하려면, 최신 수정본을 보고 있는지 확인한 다음 **승인**을 선택합니다.
**참고**  
모든 필수 검토자는 풀 요청을 승인해야 병합할 수 있습니다.

# 풀 요청 업데이트
<a name="pull-requests-update"></a>

풀 요청을 업데이트하여 다른 프로젝트 멤버가 코드를 더 쉽게 검토할 수 있습니다. 풀 요청을 업데이트하여 검토자, 문제에 대한 링크, 풀 요청 제목 또는 설명을 변경할 수 있습니다. 예를 들어, 풀 요청에 필수 검토자를 변경하여 휴가 중인 사람을 제거하고 다른 사람을 추가할 수 있습니다. 풀 요청 업데이트는 열린 풀 요청의 소스 브랜치에 커밋을 푸시하여 추가 코드를 변경하는 방식으로 수행할 수 있습니다. CodeCatalyst 소스 리포지토리에서 풀 요청의 소스 브랜치로 푸시할 때마다 수정본이 생성됩니다. 프로젝트 멤버는 풀 요청에서 수정본 간의 차이점을 볼 수 있습니다.<a name="pull-requests-update-reviewers"></a>

**풀 요청에 대한 검토자를 업데이트하려면**

1. 풀 요청의 검토자를 업데이트하려는 프로젝트로 이동합니다.

1. 프로젝트 페이지의 **풀 요청 열기**에서 검토자를 업데이트하려는 풀 요청을 선택합니다. 또는 탐색 창에서 **코드**를 선택하고 **풀 요청**을 선택한 다음 업데이트할 풀 요청을 선택합니다.

1. (선택 사항) **개요**의 **풀 요청 세부 정보** 영역에서 더하기 기호를 선택하여 필수 또는 선택적 검토자를 추가합니다. 검토자 옆의 **X**를 선택하여 선택적 또는 필수 검토자를 제거합니다.

   

1. (선택 사항) **개요의** **풀 요청 세부 정보** 영역에서 **문제 연결**을 선택하여 풀 요청에 문제를 연결한 다음, 목록에서 문제를 선택하거나 해당 ID를 입력합니다. 문제를 연결 해제하려면, 연결 해제하려는 문제 옆에 있는 연결 해제 아이콘을 선택합니다.<a name="pull-requests-update-code"></a>

**풀 요청의 소스 브랜치에서 파일 및 코드를 업데이트하려면**

1. 여러 파일을 업데이트하려면, [개발 환경을 생성](devenvironment-create.md)하거나 리포지토리 및 해당 소스 브랜치를 복제하고, Git 클라이언트 또는 통합 개발 환경(IDE)을 사용하여 소스 브랜치의 파일을 변경합니다. CodeCatalyst 소스 리포지토리의 소스 브랜치에 변경 사항을 커밋하고 푸시하여, 변경 사항으로 풀 요청을 자동으로 업데이트합니다. 자세한 내용은 [소스 리포지토리 복제](source-repositories-clone.md) 및 [Amazon CodeCatalyst에서 커밋을 사용한 소스 코드 변경 사항 이해](source-commits.md) 섹션을 참조하세요.

1. 소스 브랜치에서 개별 파일을 업데이트하려면, 여러 파일에 대해 업데이트 할 때처럼 Git 클라이언트 또는 IDE를 사용할 수 있습니다. CodeCatalyst 콘솔에서 직접 편집할 수도 있습니다. 자세한 내용은 [파일 편집](source-files-edit.md) 단원을 참조하십시오.<a name="pull-requests-update-pull-request"></a>

**풀 요청의 제목 및 설명을 업데이트하려면**

1. 풀 요청의 제목 또는 설명을 업데이트하려는 프로젝트로 이동합니다.

1. 프로젝트 페이지에는 풀 요청을 생성한 사람, 풀 요청에 대한 브랜치가 포함된 리포지토리, 풀 요청이 생성된 시기에 대한 정보를 포함한 열린 풀 요청이 표시됩니다. 소스 리포지토리별로 열린 풀 요청 보기를 필터링할 수 있습니다. 목록에서 변경하려는 풀 요청을 선택합니다.

1. 모든 풀 요청을 보려면 **모두 보기**를 선택합니다. 또는 탐색 창에서 **코드**를 선택한 다음 **풀 요청**을 선택합니다. 필터 상자 또는 정렬 함수를 사용하여 변경하려는 풀 요청을 찾은 다음, 해당 풀 요청을 선택합니다.

1.  **개요**에서 **편집**을 선택합니다.

1. 제목 또는 설명을 변경한 다음 **저장**을 선택합니다.

# 풀 요청 병합
<a name="pull-requests-merge"></a>

코드를 검토하고 모든 필수 검토자가 승인하면, 패스트 포워드와 같은 지원되는 병합 전략을 사용하여 CodeCatalyst 콘솔에서 풀 요청을 병합할 수 있습니다. CodeCatalyst 콘솔에서 지원되는 모든 병합 전략을 모든 풀 요청에서 선택하여 사용할 수 있는 것은 아닙니다. CodeCatalyst는 병합을 평가하며, 콘솔에서 사용할 수 있고 소스 브랜치를 대상 브랜치로 병합할 수 있는 병합 전략 중에서만 선택할 수 있습니다. 로컬 컴퓨터나 개발 환경에서 **git merge** 명령을 실행해 소스 브랜치를 대상 브랜치로 병합하여, 풀 요청을 선택한 Git 병합 전략과 병합할 수도 있습니다. 그런 다음 대상 브랜치의 변경 사항을 CodeCatalyst의 소스 리포지토리로 푸시할 수 있습니다.

**참고**  
Git에서 브랜치를 병합하고 변경 사항을 푸시해도 풀 요청이 자동으로 닫히지 않습니다.

프로젝트 관리자 역할이 있는 경우, 승인 및 승인 규칙에 대한 모든 요구 사항을 아직 충족하지 않은 풀 요청을 병합하도록 선택할 수도 있습니다.

## 풀 요청 병합 (콘솔)
<a name="pull-requests-merge-console"></a>

소스 브랜치와 대상 브랜치 간에 병합 충돌이 없고 모든 필수 검토자가 풀 요청을 승인한 경우, CodeCatalyst 콘솔에서 풀 요청을 병합할 수 있습니다. 충돌이 있거나 병합을 완료할 수 없는 경우, 병합 버튼이 비활성화되고 **병합할 수 없음** 레이블이 표시됩니다. 이 경우 임의의 필수 검토자의 승인을 얻고, 필요한 경우 충돌을 로컬에서 해결한 다음, 이러한 변경 사항을 푸시해야 병합할 수 있습니다. 풀 요청을 병합하면 풀 요청 생성자와 필수 또는 선택적 검토자에게 이메일이 자동으로 전송됩니다. 풀 요청에 연결된 문제는 자동으로 닫히거나 상태가 변경되지 않습니다.

**작은 정보**  
프로파일의 일부로서 이메일을 수신할 풀 요청 이벤트를 구성할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 Slack 및 이메일 알림 전송](notifications-manage.md) 단원을 참조하십시오.<a name="pull-requests-merge-console"></a>

**풀 요청 병합을 병합하려면**

1. 풀 요청을 병합하려는 프로젝트로 이동합니다.

1. 프로젝트 페이지의 **풀 요청 열기**에서 병합할 풀 요청을 선택합니다. 풀 요청이 표시되지 않으면 **모든 풀 요청 보기**를 선택한 다음 목록에서 선택합니다. 또는 탐색 창에서 **코드**를 선택하고 **풀 요청**을 선택한 다음 병합할 풀 요청을 선택합니다. **병합**을 선택합니다.

1. 풀 요청에서 사용 가능한 병합 전략 중에서 선택합니다. 선택적으로 풀 요청을 병합한 후 소스 브랜치를 삭제하는 옵션을 선택하거나 선택 취소한 다음, **병합**을 선택합니다.
**참고**  
**병합** 버튼이 비활성 상태이거나 **병합할 수 없음** 레이블이 표시되는 경우, 필수 검토자가 아직 풀 요청을 승인하지 않았거나 CodeCatalyst 콘솔에서 풀 요청을 병합할 수 없는 것입니다. 풀 요청을 승인하지 않은 검토자는 **개요**의 **풀 요청 세부 정보** 영역에 시계 아이콘으로 표시됩니다. 모든 필수 검토자가 풀 요청을 승인했지만 **병합** 버튼이 여전히 비활성 상태인 경우, 병합 충돌이 발생할 수 있습니다. 밑줄이 그어진 **병합할 수 없음** 레이블을 선택하여 풀 요청을 병합할 수 없는 이유에 대한 자세한 내용을 확인합니다. 개발 환경 또는 CodeCatalyst 콘솔에서 대상 브랜치의 병합 충돌을 해결한 뒤, 풀 요청을 병합하거나 충돌을 해결하고 로컬에서 병합한 다음, 병합이 포함된 커밋을 CodeCatalyst의 소스 브랜치로 푸시할 수 있습니다. 자세한 내용은 [풀 요청 병합(Git)](#pull-requests-merge-git) 섹션 및 Git 설명서를 참조하세요.

## 병합 요구 사항 재정의
<a name="pull-requests-merge-override"></a>

**프로젝트 관리자** 역할이 있는 경우, 필수 승인 및 승인 규칙에 대한 모든 요구 사항을 아직 충족하지 못한 풀 요청을 병합하도록 선택할 수 있습니다. 이를 풀 요청의 요구 사항 재정의라고 합니다. 필수 검토자가 작업할 수 없거나 특정 풀 요청을 신속하게 충족할 수 없는 승인 규칙이 있는 브랜치에 병합해야 하는 긴급한 필요가 발생하는 경우, 이 작업을 수행할 수 있습니다.<a name="pull-requests-merge-console"></a>

**풀 요청 병합을 병합하려면**

1. 요구 사항을 재정의하고 병합하려는 풀 요청에서 **병합** 버튼 옆의 드롭다운 화살표를 선택합니다. **승인 요구 사항 재정의**를 선택합니다.

1. **재정의 이유**에서 승인 규칙 및 필수 검토자 요구 사항을 충족하지 않고 이 풀 요청을 병합하는 이유에 대한 세부 정보를 제공합니다. 이는 선택 사항이지만 적극 권장됩니다.

1. 선택 사항으로 병합 전략을 선택하거나 기본값을 수락합니다. 자동 생성된 커밋 메시지와 추가적인 세부 정보를 업데이트하도록 선택할 수도 있습니다.

1. 병합 시 소스 브랜치를 삭제하는 옵션을 선택하거나 선택 취소합니다. 풀 요청을 병합하기 위한 요구 사항을 재정의할 때는 다른 팀원과 결정을 검토할 수 있을 때까지 소스 브랜치를 유지하는 것이 좋습니다.

1. **병합**을 선택합니다.

## 풀 요청 병합(Git)
<a name="pull-requests-merge-git"></a>

Git은 브랜치를 병합하고 관리하기 위한 다양한 옵션을 지원합니다. 다음은 명령은 사용할 수 있는 몇 가지 옵션입니다. 자세한 내용은 [Git 웹사이트](https://git-scm.com/doc)에서 확인할 수 있는 설명서를 참조하세요. 변경 사항을 병합하고 푸시한 후에는 풀 요청을 수동으로 닫습니다. 자세한 내용은 [풀 요청 닫기](pull-requests-close.md) 단원을 참조하십시오.


**브랜치 병합을 위한 공통 Git 명령**  

|  |  | 
| --- |--- |
|  로컬 리포지토리의 소스 브랜치에서 변경한 내용을 로컬 리포지토리의 대상 브랜치에 병합합니다.  |  `git checkout destination-branch-name` `git merge source-branch-name`  | 
|  소스 브랜치를 대상 브랜치로 병합하여 패스트 포워드 병합을 지정합니다. 이렇게 하면 브랜치가 병합되고 대상 브랜치 포인터가 소스 브랜치의 최신 커밋으로 이동합니다.  |  `git checkout destination-branch-name` `git merge --ff-only source-branch-name`  | 
|  소스 브랜치를 대상 브랜치로 병합하며 스쿼시 병합을 지정합니다. 이렇게 하면 소스 브랜치의 모든 커밋이 대상 브랜치의 단일 병합 커밋으로 결합됩니다.  |  `git checkout destination-branch-name` `git merge --squash source-branch-name`  | 
|  소스 브랜치를 대상 브랜치로 병합하며 3방향 병합을 지정합니다. 이렇게 하면 병합 커밋이 생성되고 소스 브랜치의 개별 커밋이 대상 브랜치에 추가됩니다.  |  `git checkout destination-branch-name` `git merge --no-ff source-branch-name`  | 
|  로컬 리포지토리에서 소스 브랜치를 삭제합니다. 이는 대상 브랜치로 병합하고 변경 사항을 소스 리포지토리로 푸시한 후, 로컬 리포지토리를 정리하는 데 유용합니다.  |  `git branch -d source-branch-name`  | 
|  원격 리포지토리에 대해 지정된 로컬 리포지토리 별명을 사용하여 원격 리포지토리(CodeCatalyst의 소스 리포지토리)의 소스 브랜치를 삭제합니다. (콜론(`:`) 사용에 주의하세요.) 또는 명령의 일부로 `--delete`를 지정합니다.  |  `git push remote-name :source-branch-name` `git push remote-name --delete source-branch-name`  | 

# 풀 요청 닫기
<a name="pull-requests-close"></a>

풀 요청을 **종결됨**으로 표시할 수 있습니다. 이렇게 하면 풀 요청이 병합되지 않지만 작업이 필요한 풀 요청과 더 이상 관련이 없는 풀 요청을 판단하는 데 도움이 될 수 있습니다. 더 이상 이러한 변경 사항을 병합할 계획이 없거나 변경 사항이 다른 풀 요청에서 병합된 경우, 풀 요청을 닫는 것이 좋습니다.

풀 요청을 닫으면 풀 요청 생성자와 필수 또는 선택적 검토자에게 이메일이 자동으로 전송됩니다. 풀 요청을 닫더라도 풀 요청에 연결된 문제의 상태는 자동으로 변경되지 않습니다.

**참고**  
풀 요청을 닫은 후에는 다시 열 수 없습니다.<a name="pull-requests-close-pull-request"></a>

**풀 요청을 닫으려면**

1. 풀 요청을 닫으려는 프로젝트로 이동합니다.

1. 프로젝트 페이지에 열린 풀 요청이 표시됩니다. 닫으려는 풀 요청을 선택합니다.

1. **닫기**를 선택하세요.

1. 정보를 검토한 후 **닫기**를 선택합니다.