ChatGPT를 이용한 Github Action코드 리뷰 자동화 방법
ChatGPT를 이용한 코드 리뷰 자동화
ChatGPT를 이용하여 Github에서 코드 리뷰를 자동화하는 방법을 소개합니다. Github Action과 ChatGPT를 이용하여 코드 리뷰를 작성하고, 코드 리뷰어로 지정된 사용자에게 자동으로 리뷰를 요청하는 방법을 다룹니다.
지원 언어 : ENGLISH | 中文简体 | 中文繁體 | 한국어 | 日本語
1. ChatGPT API Key 생성
ChatGPT를 사용하기 위해서는 먼저 OpenAI에서 제공하는 API Key를 생성해야 합니다.
- OpenAI 사이트에 로그인합니다.
API Tokens
메뉴에서New API Token
을 선택합니다.- Token의 이름을 입력하고,
Generate API Key
버튼을 클릭합니다. - 생성된 API Key를 복사해둡니다.
2. Github Action Secret 설정
이제 ChatGPT를 사용할 리파지토리나 조직의 설정에 들어가서 왼쪽 사이드 바에서 Secrets and variables
를 선택합니다. New repository secret
버튼을 클릭하여 이름을 OPENAI_API_KEY
로 입력하고, 위에서 복사해둔 API Key를 붙여넣어 저장합니다.
3. Github Action 워크플로우 생성
Github Action은 깃허브에서 제공하는 CI/CD 도구로, 특정 이벤트가 발생하면 미리 정의된 워크플로우를 실행시킵니다. 이번 예시에서는 pull_request
이벤트가 발생할 때마다 ChatGPT를 이용하여 코드 리뷰를 작성하는 워크플로우를 실행합니다.
- 리파지토리나 Organization의
.github/workflows
폴더에cr.yml
파일을 생성합니다. - 아래 코드를 복사하여 붙여넣습니다.
# .github/workflows/cr.yml 파일 생성
name: Code Review
permissions:
contents: read
pull-requests: write
on:
pull_request:
types: [opened, synchronize]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: anc95/ChatGPT-CodeReview@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
LANGUAGE: Korean
위 코드에서 secret 이름을 다르게 설정했다면 OPENAI_API_KEY
대신 해당 이름을 사용합니다.
jobs
는 워크플로우에서 실행할 job을 정의하는 부분입니다. runs-on
은 job을 실행할 환경을 지정합니다. 이 예시에서는 Ubuntu 환경에서 실행합니다.
steps
는 job에서 실행할 순서대로 작성한 작업들을 정의하는 부분입니다. 이 예시에서는 ChatGPT 코드 리뷰를 수행하는 작업을 수행합니다.
4. 사용 방법
- 새로운 Pull request를 생성하면 로봇이 자동으로 코드 리뷰를 수행하며, 리뷰 정보는 Pull request 타임라인 / 파일 변경 부분에 표시됩니다.
git push
이후에 Pull request를 업데이트하면, cr bot은 변경된 파일을 다시 검토합니다.
5. Github Action 동작 방식
Open PR ➜ Github Action Code Review Workflow 실행 ➜ compareCommits() 함수 실행하여 변경된 파일 목록을 가져옴 ➜ 코드 리뷰를 작성하라는 prompt 와 함께 changedFiles의 patch 내용을 Chat GPT에 전달 ➜ ChatGPT에서 온 response를 이용하여 코드 리뷰 생성
anc95/ChatGPT-CodeReview
anc95/ChatGPT-CodeReview는 중국인 개발자가 만든 ChatGPT를 이용하여 Github에서 코드 리뷰를 자동화하는 액션입니다. 이 액션을 사용하면 pull request가 열리거나 변경될 때마다 ChatGPT를 이용하여 코드 리뷰를 작성하고, 코드 리뷰어로 지정된 사용자에게 자동으로 리뷰를 요청할 수 있습니다.
이 액션을 사용하기 위해서는 먼저 OpenAI에서 제공하는 ChatGPT API Key를 생성해야 하며, 생성된 API Key를 Github Action Secret으로 등록해야 합니다. 이후 .github/workflows 폴더에 cr.yml
파일을 생성하여 액션을 정의하면 됩니다. 이 액션은 ChatGPT를 이용하여 코드 리뷰를 작성하는 작업을 수행하며, compareCommits()
함수를 이용하여 PR에서 변경된 파일 목록을 가져오고, ChatGPT에게 코드 리뷰를 작성하라는 prompt와 함께 변경된 파일들의 patch 내용을 전달하여 ChatGPT에서 온 응답을 이용하여 코드 리뷰를 작성합니다.