Skip to content

Latest commit

 

History

History
117 lines (78 loc) ยท 3.64 KB

README.ko.md

File metadata and controls

117 lines (78 loc) ยท 3.64 KB

CodeReview BOT

cr bot์€ ChatGPT๋ฅผ ํ™œ์šฉํ•œ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋กœ๋ด‡์ž…๋‹ˆ๋‹ค.

Translation Versions: ENGLISH | ็ฎ€ไฝ“ไธญๆ–‡ | ็น้ซ”ไธญๆ–‡ | ํ•œ๊ตญ์–ด | ๆ—ฅๆœฌ่ชž

์‚ฌ์šฉ๋ฒ•

โ—๏ธโš ๏ธ๋น„์šฉ์„ ๊ณ ๋ คํ•˜์—ฌ BOT์€ ํ…Œ์ŠคํŠธ ๋ชฉ์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ, ํ˜„์žฌ AWS Lambda์— ๋ฐฐํฌ๋˜์–ด ์†๋„ ์ œํ•œ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถˆ์•ˆ์ •ํ•œ ์ƒํ™ฉ์€ ์™„์ „ํžˆ ์ •์ƒ์ ์ž…๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ง์ ‘ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์„ค์น˜

์„ค์น˜: apps/cr-gpt;

์„ค์ •

  1. cr bot์„ ์ ์šฉํ•  ๋ ˆํฌ์ง€ํ† ๋ฆฌ ํ™ˆํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. settings ํด๋ฆญ
  3. secrets and variables ๋ฉ”๋‰ด ๋ฐ‘์˜ actions ๋ฅผ ํด๋ฆญ
  4. Variables ํƒญ์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค, New repository variable ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ์ƒˆ๋กœ์šด OPENAI_API_KEY ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์˜ ๊ฐ’์œผ๋กœ ๋‹น์‹ ์˜ open api key ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. (OpenAI ํ™ˆํŽ˜์ด์ง€์—์„œ api ํ‚ค๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) image

์‚ฌ์šฉ ์‹œ์ž‘ํ•˜๊ธฐ

  1. ์ƒˆ๋กœ์šด Pull request๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋กœ๋ด‡์ด ์ž๋™์œผ๋กœ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋ฆฌ๋ทฐ ์ •๋ณด๋Š” Pull request ํƒ€์ž„๋ผ์ธ / ํŒŒ์ผ ๋ณ€๊ฒฝ ๋ถ€๋ถ„์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  2. git push ์ดํ›„์— Pull request๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉด, cr bot์€ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์„ ๋‹ค์‹œ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

ChatGPT-CodeReview/pull/21

image

Github Actions ์‚ฌ์šฉํ•˜๊ธฐ

๊นƒํ—ˆ๋ธŒ ๋ด‡์ด humble vps์—์„œ ์„œ๋น„์Šค๋˜๋ฏ€๋กœ, ํ•ญ์ƒ ์•ˆ์ •์ ์ธ ์ƒํƒœ์ž„์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฐฉ๋ฒ•์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

actions/chatgpt-codereviewer

  1. OPENAI_API_KEY ๋ฅผ ๋‹น์‹ ์˜ github actions secrets ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  2. .github/workflows/cr.yml ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
name: Code Review

permissions:
  contents: read
  pull-requests: write

on:
  pull_request:
    types: [opened, reopened, 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 }}
          # optional
          LANGUAGE: Korean
          PROMPT:
          IGNORE_PATTERNS: /node_modules,*.md # Regex pattern to ignore files, separated by comma

Self-hosting

  1. ์ฝ”๋“œ๋ฅผ clone ํ•ฉ๋‹ˆ๋‹ค.
  2. .env.example ์„ .env๋กœ ๋ณต์ œํ•˜๊ณ , ํ™˜๊ฒฝ๋ณ€์ˆ˜(env variable)์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  3. ์ข…์†์„ฑ(deps)๋“ค์„ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
npm i
npm -i g pm2
npm run build
pm2 start pm2.config.cjs

probot ๋” ์ž์„ธํ•œ ์ •๋ณด

Dev

์„ค์ •

# ์ข…์†์„ฑ ์„ค์น˜
npm install

# ๋ด‡ ์‹คํ–‰
npm start

Docker

# 1. ์ปจํ…Œ์ด๋„ˆ ๋นŒ๋“œ
docker build -t cr-bot .

# 2. ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘
docker run -e APP_ID=<app-id> -e PRIVATE_KEY=<pem-value> cr-bot

๊ธฐ์—ฌํ•˜๊ธฐ

๋งŒ์•ฝ ๋‹น์‹ ์ด cr-bot์˜ ๊ฐœ์„  ์ œ์•ˆ์ด๋‚˜ ๋ฒ„๊ทธ ์‹ ๊ณ ๊ฐ€ ์žˆ์œผ๋ฉด issue๋ฅผ ์—ด์–ด์ฃผ์„ธ์š”! ๋ชจ๋“  ๋‹น์‹ ์˜ ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ธฐ์—ฌ ๊ฐ€์ด๋“œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

Credit

์ด ํ”„๋กœ์ ํŠธ๋Š” codereview.gpt์—์„œ ์˜๊ฐ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

License

ISC ยฉ 2023 anc95