팀원들이 다들 바쁘거나, 코드리뷰를 제대로 해줄 시간이 부족할 때 기능 리뷰만 확인 할 때가 많습니다
코드의 품질과 원활한 코드리뷰를 위해 AI 의 도움을 받으면 좋을 것 같아서 도입을 해봤는데요!
Github Action 을 이용해서 PR을 등록하면 ChatGPT 가 코드 리뷰를 해줍니다.
아래 레포를 통해 도움을 받았습니다.
https://github.com/anc95/ChatGPT-CodeReview?tab=readme-ov-file#self-hosting
중국인 개발자가 만든 ChatGPT 를 이용하여 Github 에서 코드 리뷰를 자동화하는 액션입니다.
이 액션을 사용하면 Pull Request 가 열리거나 변경될 때마다 ChatGPT 를 이용하여 코드 리뷰를 작성하고, 코드 리뷰어로 지정된 사용자게 자동으로 리뷰를 요청할 수 있습니다.
1️⃣ OpenAI Key 발급
먼저, OpenAI 홈페이지에 들어가서 로그인을 합니다.
https://platform.openai.com/settings/organization/api-keys
API keys > "Create new secret key" 버튼을 눌러서 api 키를 생성합니다.
api key 를 잘 복사합니다.
2️⃣ github 레파지토리에 토큰 등록
github 의 적용할 레포의 Settings 메뉴 > Security > Secrets and variables > Actions 페이지로 이동합니다.
New repository secret 버튼을 클릭해서 'OPENAI_API_KEY' 로 등록해줍니다.
3️⃣ apps/cr-gpt ; GPT 봇 설치
https://github.com/apps/cr-gpt
여기에 접속해서 레파지토리 등록을 해줍니다.
4️⃣ github workflows 에 파일을 생성
`.github/workflows/code_review_from_chatgpt.yml`
name: Code Review From ChatGPT
permissions:
contents: read
pull-requests: write
on:
pull_request:
types: [opened, synchronize]
jobs:
code-review:
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
MODEL: gpt-3.5-turbo
해당 파일을 추가해서 커밋 푸시해주면 끝!
결과
PR 을 올리면 자동으로 리뷰어에 봇이 들어가고 리뷰를 해줍니다.
Github Actions 동작 방식
PR 을 Open 하면,
➡️ github actions code review workflow 실행
➡️ compareCommit() 함수를 실행하여 변경된 파일 목록을 가져옴
➡️ 코드 리뷰를 작성하라는 prompt 와 함께 changedFiles 의 patch 내용을 chat gpt 에 전달
➡️ chat gpt 에서 가져온 response 를 이용하여 코드 리뷰 생성
🚨 429 error 현재 할당량을 초과했습니다. 요금제와 청구 세부 정보를 확인하세요.
https://platform.openai.com/docs/guides/error-codes/api-errors.
할당량 초과 에러인데요 추가 크레딧을 구매하거나 한도를 늘려야 합니다. OpenAI에서 무료로 제공해주는 크레딧이 없어진 것 같습니다.
사용을 원하시면,
유료 플랜으로 업그레이드해야 합니다. 유료 계정을 설정하고, 신용카드나 직불카드를 추가하고, 업그레이드 전에 기존 API 키가 생성되었다면 새 API 키를 생성합니다. 유료 플랜으로 업그레이드한 후 유료 계정이 활성화되고 오류가 사라지기까지 10분 정도 걸릴 수 있습니다.
'frond-end' 카테고리의 다른 글
크롬 브라우저 비밀번호 자동 완성, 이렇게 하면 완벽 차단 (feat. formkit) (0) | 2025.01.07 |
---|---|
웹 폰트 최적화 (Feat. cdn.jsdelivr.net 에러 사태 - 20240502) (0) | 2024.05.01 |
AWS S3 + CloudFront 배포 생성 (1) | 2024.04.28 |
Bitbucket 배포 환경 만들기 (0) | 2024.04.28 |
jsPDF 이미지파일 pdf에 추가, 한글 깨짐 문제 (base64) (0) | 2024.04.27 |