ChatGPT나 Codex로 코드 변경 사항을 파악하고, 문제가 될 만한 부분을 조사하고, 리뷰 의견을 작성하세요.
Pull request 리뷰
코드 리뷰 플러그인에서는 pull request의 설명, 변경된 파일, 댓글, 검사 결과를 볼 수 있습니다. 승인하기 전에 이 정보를 바탕으로 문제가 될 만한 부분을 살펴보세요.
GitHub 코드 리뷰는 정식으로 제공됩니다. 코드 리뷰에서 GitLab 병합 요청을 검토하는 기능은 프리뷰로 제공됩니다. GitLab에서 @codex review로 클라우드 리뷰를 시작하거나 병합 요청을 자동으로 검토하려면 Codex로 GitLab 병합 요청 검토하기를 참고하세요.
리포지터리에서 리뷰를 시작하는 방법은 GitHub 연동 가이드와 Codex Cloud(레거시) 환경 설정을 참고하세요.
데스크톱 앱에는 코드 리뷰가 포함되어 있습니다. 설치된 플러그인 목록에서 코드 리뷰를 앱 사이드바에 고정할 수 있습니다.
pull request 보기
- 사이드바에서 코드 리뷰를 여세요.
- 계정 연결 안내가 표시되면 검토할 리포지터리에 접근할 수 있는 소스 관리 서비스 계정을 연결하세요.
- 사이드바에서 pull request를 선택하거나 검색창에 해당 링크를 입력하세요.
- 요약에서 설명, 활동 내역, 댓글, 검사 결과를 확인하세요. 변경 사항을 열어 diff와 함께 변경된 파일과 댓글을 살펴보세요.
확인이 필요한 리뷰 찾기
개인 받은 편지함에서 여러 리포지터리의 GitHub pull request를 찾을 수 있습니다. 나에게 할당됨을 선택하면 나에게 요청된 리뷰가, 내 팀에 할당됨을 선택하면 팀에 요청된 리뷰가 표시됩니다. 내가 작성함을 선택하면 내가 올린 변경 사항을 다시 볼 수 있습니다. 리뷰 상태를 확인한 뒤 pull request를 열어 피드백과 검사 결과를 살펴보세요.
나중에 리뷰를 다시 보려면 리뷰 도구 모음에서 핀 아이콘을 선택하세요. 해당 pull request가 사이드바의 고정됨 아래에 표시됩니다.
변경된 파일과 관련 pull request 살펴보기
변경 사항에서 파일 검토를 마치면 해당 파일의 확인한 것으로 표시를 선택하세요. 다시 선택하면 표시가 해제됩니다. 이 표시는 현재 보고 있는 리비전에 적용됩니다.
변경 사항이 서로 의존하는 여러 pull request에 나뉘어 있다면 스택을 사용하세요. 요약에 있는 이 항목에서 관련 pull request를 열어 diff, 댓글, 검사 결과를 확인할 수 있습니다. 이 항목은 코드 리뷰가 열려 있는 pull request의 스택을 찾았을 때 표시됩니다.
자동 클라우드 리뷰 읽기
ChatGPT Codex 커넥터를 연결했고 필요한 리포지터리 권한이 있으며 자동 리뷰가 켜져 있으면, 사용자가 GitHub pull request를 열기 전에 Codex가 미리 검토할 수 있습니다. 댓글은 GitHub와 코드 리뷰 양쪽에 표시됩니다.
클라우드 리뷰를 위해 클라우드 환경을 직접 만들거나 관리할 필요는 없습니다. 연결 요건, 리포지터리 설정, @codex review로 리뷰를 시작하는 방법은 GitHub에서 Codex 사용하기를 참고하세요.
리뷰에서 지적한 내용을 diff와 대조하세요. 자동 클라우드 리뷰는 pull request 채팅에서 직접 시작하는 리뷰와 별도로 실행됩니다.
변경 사항에 관해 질문하기
pull request 채팅에서 기대하는 동작을 설명하고 Codex에 변경 사항을 설명하거나 조사해 달라고 요청하세요.
Codex로 리뷰를 선택하면 새 채팅에서 리뷰가 시작됩니다. 기존 채팅 옆에서 pull request를 보고 있다면 해당 채팅에서 변경 사항에 관해 질문하세요.
설치된 스킬과 연결된 소스를 활용해 팀의 리뷰 지침이나 설계 문서를 Codex에 제공하세요. 변경 사항을 요약하고 위험 요소를 설명해 달라고 요청한 뒤, 답변에서 인용한 맥락과 코드를 확인하세요.
예를 들어, 이슈 보드에 Open 및 Closed 필터를 추가하는 pull request를 검토한다고 가정해 보세요. 기본 필터는 All로 유지되고 조건에 맞는 이슈가 없을 때는 빈 상태가 표시되어야 합니다.
이 pull request의 변경 내용을 차근차근 설명해 줘. 어떤 필터가 기본으로 선택되는지,
조건에 맞는 이슈가 없을 때 어떻게 동작하는지 중점적으로 살펴봐 줘. 기본 필터는 계속 All이어야 해.판단의 근거를 요청하세요.
조건에 맞는 이슈가 없을 때 실행되는 코드 경로와 이 경우를 다루는 테스트를 보여 줘.
테스트에서 검증하는 동작과 아직 확인해야 할 부분을 설명해 줘.답변에서 언급한 diff와 테스트를 기대하는 동작과 대조하세요.
리뷰에서 지적한 항목을 선택하면 변경 사항에서 설명과 관련 코드 줄을 볼 수 있습니다. 수정이 필요한지 판단하기 전에 최신 diff, 기대하는 동작, 테스트와 대조하세요. 실행 중인 리뷰는 리뷰 채팅에서 중지할 수 있습니다.
리뷰 지침 설정하기
리뷰 지침 톱니바퀴 아이콘을 선택하세요. 이 아이콘은 Codex로 리뷰 옆에 있습니다. 설정 > 코드 리뷰에서도 지침을 편집할 수 있습니다.
여러 리뷰에 공통으로 적용할 기준과 결과 보고 형식을 Codex에 알려주세요. 예를 들면 다음과 같습니다.
먼저 변경 내용을 짧게 요약해 줘. 동작이 달라지는 부분, 데이터 손실, 테스트에서 빠진 경계 사례를 우선해서 살펴봐 줘.
발견한 문제마다 어떤 입력에서 발생하는지, 기대하는 동작은 무엇이고 실제로는 어떻게 동작하는지 설명해 줘.
우리 팀의 리뷰 스타일에 맞춰 간결하게 작성해 줘.이 지침은 어느 리포지터리에서든 Codex로 리뷰를 선택해 시작한 리뷰에 적용됩니다. 리뷰가 실행되는 동안 지침을 변경하면 다음 리뷰부터 적용됩니다. 특정 변경 사항에 관한 질문은 해당 pull request 채팅에서 하세요.
원하는 경우 만화, 시각화 또는 PDF를 선택해 해당 형식으로 변경 사항을 설명하도록 추천 지침을 추가하세요. 필요에 따라 문구를 편집한 다음 저장 또는 리뷰 실행을 선택하세요.
피드백 공유 및 후속 조치
채팅에서 pull request를 검토해도 댓글이 게시되거나 pull request가 승인 또는 병합되지는 않습니다. 리뷰에서 지적한 내용 중 무엇을 공유할지는 직접 결정하세요.
문제를 확인한 뒤 Codex에 리뷰 댓글 초안 작성을 요청하세요.
앞서 논의한 팀 리뷰 지침에 맞춰 댓글 초안을 작성해 줘. 조건에 맞는 이슈가 없을 때 우리가 확인한 실제 동작과
그때 기대하는 동작을 설명하고, 어떤 테스트로 이를 검증할 수 있는지 적어 줘.
댓글은 게시하지 말고 초안으로만 남겨 줘.게시하기 전에 초안에서 언급한 파일과 줄 번호를 확인하세요. 게시할 준비가 될 때까지 초안을 채팅에 보관하세요. 요약 또는 변경 사항에서 댓글을 게시하면 리뷰 제출을 기다리지 않고 소스 관리 서비스로 즉시 전송됩니다.
리뷰 제출에서 댓글, 승인, 변경 요청 중 하나를 선택해 소스 관리 서비스에 리뷰를 보내세요. 제출하기 전에 선택한 항목과 리뷰 댓글을 확인하세요.
작성자라면 자신의 pull request로 돌아가 Codex에 구체적인 피드백을 반영해 달라고 요청하세요. 수정된 내용을 검토하고 관련 테스트를 실행하세요. 승인하거나 병합하기 전에 최신 리비전, 검사 결과, 아직 처리하지 않은 피드백을 확인하세요.
코드 리뷰에서는 이미지가 첨부된 pull request 설명 편집을 지원하지 않습니다. 이러한 설명을 편집하려면 GitHub에서 해당 pull request를 여세요.
채팅에서 이어가기
요약에 스레드가 표시되면 연결된 채팅을 선택해 해당 대화로 돌아가세요. 여기에 표시되는 항목은 해당 pull request와 연결된 내 채팅입니다.
Codex에서 열려 있는 pull request의 수정 버튼을 선택하세요. 검사에 있는 이 버튼을 누르면 실패한 검사 결과가 채팅에 첨부됩니다. 메시지는 작성만 되고 전송되지는 않습니다. 프롬프트를 검토하거나 추가한 뒤 메시지를 보내 Codex에 조사를 요청하세요. 수정 사항을 푸시하기 전에 변경 내용을 검토하고 관련 테스트를 다시 실행하세요.
확인할 수 있는 진단 정보는 검사를 제공하는 서비스에 따라 다릅니다. 타사 CI를 사용하는 경우 Codex는 해당 CI가 GitHub에 보고한 상태와 출력을 활용할 수 있습니다.
로컬 변경 사항 검토하기
Codex의 기본 제공 /review 명령어는 로컬에 체크아웃한 Git 코드의 변경 사항을 검토합니다. 코드 리뷰 플러그인은 pull request를 검토합니다. 사용 중인 클라이언트를 선택해 해당 절차를 확인하세요.
ChatGPT Work에서 검토할 코드를 업로드하거나 설치된 소스 플러그인으로 코드에 접근할 수 있도록 하세요. 프롬프트에 검토할 pull request, 브랜치, 커밋, 파일과 리뷰 기준을 명시하세요.
앱에서 검토하기
리뷰 패널을 열어 변경 내용을 파악하고 특정 줄에 피드백을 남기세요. 어떤 변경 사항을 스테이징하거나 되돌릴지, 무엇을 커밋하거나 푸시할지도 여기에서 결정할 수 있습니다.
Codex에 변경 사항 검토를 요청하려면 Composer에 /review를 입력하세요. 기준 브랜치와 비교하여 리뷰 또는 커밋되지 않은 변경 사항 리뷰를 선택하세요. Codex는 작업 트리를 변경하지 않고 발견한 문제를 우선순위에 따라 보고합니다.
리뷰 패널을 사용하려면 프로젝트가 Git 리포지터리 안에 있어야 합니다. 프로젝트가 아직 Git 리포지터리가 아니면 앱에서 리포지터리를 만들라는 안내가 표시됩니다.
/review를 입력해 CLI에서 미리 정의된 리뷰 옵션을 여세요. Codex는 전담 리뷰어를 실행합니다. 리뷰어는 선택한 diff를 읽고 조치할 수 있는 문제를 우선순위에 따라 보고하며 작업 트리를 변경하지 않습니다.
IDE 확장 프로그램의 Composer에 /review를 입력하세요. 기준 브랜치와 비교하여 리뷰 또는 커밋되지 않은 변경 사항 리뷰를 선택하세요. Codex는 작업 트리를 변경하지 않고 발견한 문제를 우선순위에 따라 보고합니다.
/review 명령어는 열려 있는 프로젝트가 Git 리포지터리 안에 있을 때만 표시됩니다.
리뷰 범위 선택하기
프롬프트에 검토할 pull request, 브랜치, 커밋 또는 파일을 명시하세요. 설치된 소스 플러그인으로 접근할 수 없는 로컬 파일을 검토하려면 해당 파일을 채팅에 업로드하세요.
리뷰 패널에 표시되는 변경 사항
리뷰 패널에는 Git 리포지터리의 현재 상태가 반영됩니다. Codex가 수정한 내용과 직접 수정한 내용은 물론, 리포지터리에서 아직 커밋하지 않은 다른 변경 사항도 표시됩니다.
리뷰 패널에는 기본적으로 스테이징되지 않음 범위의 변경 사항이 표시됩니다. 스테이징됨을 선택하면 Git 인덱스의 변경 사항을, 커밋을 선택하면 특정 커밋의 변경 사항을 볼 수 있습니다. 브랜치를 선택하면 기준 브랜치와의 diff가, 마지막 턴을 선택하면 어시스턴트가 가장 최근 턴에서 변경한 내용이 표시됩니다.
여러 리포지터리 검토하기
로컬 프로젝트에 여러 폴더가 포함되어 있고 각 폴더가 서로 다른 Git 리포지터리에 속해 있다면 리뷰 패널에 각 리포지터리의 변경 사항을 표시할 수 있습니다. 리뷰 헤더에서 리포지터리 선택기를 열면 현재 리뷰 패널을 벗어나지 않고 다른 리포지터리에서 추가되거나 삭제된 줄을 확인할 수 있습니다.
마지막 턴을 선택하면 연결된 모든 리포지터리에서 어시스턴트가 가장 최근 턴에 변경한 내용을 볼 수 있습니다. 이때 리포지터리 선택기에는 모든 리포지터리가 표시됩니다. 스테이징되지 않음, 스테이징됨, 브랜치 등의 다른 리뷰 범위는 선택한 리포지터리에만 적용됩니다.
다음 /review 범위 중 하나를 선택하세요.
- 기준 브랜치와 비교하여 리뷰 옵션은 두 브랜치의 공통 조상 커밋을 찾아 그 지점부터 현재 브랜치의 변경 사항을 검토합니다.
- 커밋되지 않은 변경 사항 리뷰 옵션에는 스테이징된 파일, 스테이징되지 않은 파일, 추적되지 않는 파일이 포함됩니다.
- 커밋 리뷰 옵션은 선택한 커밋에 포함된 변경 사항만 검토합니다.
- 사용자 지정 리뷰 지침 옵션은 사용자가 제시한 기준에 초점을 맞춰 검토합니다.
다음 /review 범위 중 하나를 선택하세요.
- 기준 브랜치와 비교하여 리뷰 옵션은 현재 브랜치와 사용자가 선택한 브랜치를 비교합니다.
- 커밋되지 않은 변경 사항 리뷰 옵션은 작업 트리의 변경 사항을 검토합니다.
리뷰 결과 활용하기
리뷰에서 발견한 문제는 웹 채팅에 표시됩니다. 판단 근거를 물어보거나 범위를 좁혀 다시 검토해 달라고 요청하세요. ChatGPT에 수정된 파일을 준비해 달라고 요청할 수도 있습니다.
코드 리뷰 결과
리뷰에서 발견한 문제는 리뷰 패널에 인라인 댓글로 표시됩니다.
기본적으로 리뷰는 현재 채팅에서 실행됩니다. 설정 > 일반 > 코드 리뷰에서 분리를 선택하면 별도의 리뷰 채팅이 시작됩니다. 자세한 내용은 개발자 설정을 참고하세요.
리뷰는 대화 기록에 하나의 턴으로 표시됩니다. review_model 값을 config.toml에 설정하면 리뷰에 현재 세션과 다른 모델을 사용할 수 있습니다.
기본적으로 리뷰는 현재 채팅에서 실행됩니다. chatgpt.reviewDelivery를 detached로 설정하면 /review 명령어가 별도의 리뷰 채팅을 시작합니다. 자세한 내용은 IDE 확장 프로그램 설정 레퍼런스를 참고하세요.
ChatGPT에 수정된 파일을 준비해 달라고 요청해도 해당 채팅에서 사용할 수 있는 도구와 워크스페이스 권한은 그대로 적용됩니다.
Codex에 리뷰에서 발견한 문제를 수정해 달라고 요청하면 평소 사용하는 샌드박스 및 승인 설정이 적용됩니다.
리뷰 패널 사용하기
- 파일 이름을 클릭하면 일반적으로 선택한 편집기에서 해당 파일이 열립니다. 기본 편집기는 개발자 설정에서 선택할 수 있습니다.
- 파일 이름의 배경을 클릭하면 diff가 펼쳐지거나 접힙니다.
- Command 키를 누른 채 코드 한 줄을 클릭하면 선택한 편집기에서 해당 줄이 열립니다.
- 원하는 변경 사항은 스테이징하고 원하지 않는 변경 사항은 되돌릴 수 있습니다.
인라인 댓글로 피드백 남기기
인라인 댓글을 사용하면 diff의 특정 줄에 직접 피드백을 남길 수 있습니다. Codex에 어디를 어떻게 수정해야 하는지 알려주는 가장 빠른 방법일 때가 많습니다.
인라인 댓글을 남기려면 다음 단계를 따르세요.
- 리뷰 패널을 여세요.
- 댓글을 남길 줄에 마우스 포인터를 올리세요.
- 화면에 나타나는 + 버튼을 선택하세요.
- 피드백을 작성하고 제출하세요.
- 피드백을 모두 남긴 뒤 채팅으로 돌아가 메시지를 보내세요.
각 댓글이 특정 코드 줄에 연결되므로 Codex가 일반적인 지침을 받았을 때보다 정확하게 대응할 수 있습니다.
Codex는 인라인 댓글을 리뷰 지침으로 사용합니다. 댓글을 남긴 뒤에는 “인라인 댓글을 반영하고 수정 범위는 최소한으로 유지해 줘.”처럼 의도를 분명히 밝힌 후속 메시지를 보내세요.
파일 스테이징 및 되돌리기
리뷰 패널에서 Git 작업을 실행해 커밋하기 전에 diff에 포함할 변경 사항을 조정할 수 있습니다.
다음 단위로 변경 사항을 스테이징하거나, 스테이징을 해제하거나, 변경을 되돌릴 수 있습니다.
- 전체 diff에 적용하려면 리뷰 헤더의 모두 스테이징 또는 모두 되돌리기 등의 버튼을 사용하세요.
- 파일 단위로 개별 파일을 스테이징하거나 스테이징을 해제하거나 변경을 되돌리세요.
- 헝크 단위로 diff의 한 헝크를 스테이징하거나 스테이징을 해제하거나 변경을 되돌리세요.
작업한 내용 중 일부를 커밋에 포함하려면 해당 변경 사항을 스테이징하세요. 변경 내용을 버리려면 되돌리세요.
스테이징된 상태와 스테이징되지 않은 상태
Git에서는 같은 파일에 스테이징된 변경 사항과 스테이징되지 않은 변경 사항이 함께 있을 수 있습니다. 이 경우 리뷰 패널의 두 보기에 같은 파일이 표시될 수 있습니다. 이는 Git의 정상적인 동작입니다.