FRONT-END/VS & GITHUB

ChatGPT를 이용한 Github Action코드 리뷰 자동화 방법

서근 2023. 5. 7. 20:25
반응형

ChatGPT를 이용한 코드 리뷰 자동화

ChatGPT를 이용하여 Github에서 코드 리뷰를 자동화하는 방법을 소개합니다. Github Action과 ChatGPT를 이용하여 코드 리뷰를 작성하고, 코드 리뷰어로 지정된 사용자에게 자동으로 리뷰를 요청하는 방법을 다룹니다.

 

지원 언어 : ENGLISH | 中文简体 | 中文繁體 | 한국어 | 日本語

1. ChatGPT API Key 생성

ChatGPT를 사용하기 위해서는 먼저 OpenAI에서 제공하는 API Key를 생성해야 합니다.

  1. OpenAI 사이트에 로그인합니다.
  2. API Tokens 메뉴에서 New API Token을 선택합니다.
  3. Token의 이름을 입력하고, Generate API Key 버튼을 클릭합니다.
  4. 생성된 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를 이용하여 코드 리뷰를 작성하는 워크플로우를 실행합니다.

 

  1. 리파지토리나 Organization의 .github/workflows 폴더에 cr.yml 파일을 생성합니다.
  2. 아래 코드를 복사하여 붙여넣습니다.
# .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. 사용 방법

  1. 새로운 Pull request를 생성하면 로봇이 자동으로 코드 리뷰를 수행하며, 리뷰 정보는 Pull request 타임라인 / 파일 변경 부분에 표시됩니다.
  2. 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에서 온 응답을 이용하여 코드 리뷰를 작성합니다.