-
Notifications
You must be signed in to change notification settings - Fork 0
Repository Config
- 이 페이지는 설정 파일의 전체 항목을 다루는 레퍼런스입니다.
- 리포지토리 루트에 설정 파일을 두면 리뷰 방식을 팀에 맞게 바꿀 수 있습니다.
- 봇은 파일이 없어도 기본값으로 동작하므로, 필요할 때만 활용하세요.
봇은 아래 네 곳을 순서대로 찾아 먼저 발견된 파일 하나만 사용합니다. 여러 개를 두더라도 나중에 발견된 파일은 무시됩니다.
.reviewbot/config.yml.reviewbot/config.yaml.reviewbot.yml.reviewbot.yaml
model: darwin-35b-q4_k_m.gguf
language: ko
temperature: 0.2
maxOutputTokens: 16384
maxFiles: 40
maxFileChars: 24000
maxPromptChars: 140000
exclude:
- '**/*.generated.ts'
- 'docs/**'
autoReview: true
minSeverity: minor
minConfidence: 0.5
maxInlineComments: 25
triggerPrefix: '/review'
customInstructions: |
- 이 리포지토리는 TypeScript strict 모드다. any 사용을 지적하라.
- 외부 API 호출에는 반드시 타임아웃과 재시도가 있어야 한다.전부 적을 필요는 없습니다. 적은 항목만 바뀌고 나머지는 기본값이 적용됩니다.
| 항목 | 타입 | 기본값 |
|---|---|---|
minSeverity |
열거형 | minor |
minConfidence |
숫자 | 0.5 |
maxInlineComments |
숫자 | 25 |
exclude |
문자열 배열 | 아래 참고 |
include |
문자열 배열 |
[] (제한 없음) |
customInstructions |
문자열 | '' |
autoReview |
불리언 | true |
triggerPrefix |
문자열 | /review |
language |
문자열 | ko |
maxFiles |
숫자 | 40 |
maxFileChars |
숫자 | 24000 |
maxPromptChars |
숫자 | 140000 |
maxOutputTokens |
숫자 | 16384 |
temperature |
숫자 | 0.2 |
model |
문자열 | darwin-35b-q4_k_m.gguf |
baseUrl |
문자열 | 관리자 설정 |
minSeverity는 이 값 미만의 심각도는 코멘트하지 않도록 하는 항목이며, 기본값은 minor입니다.
심각도는 높은 순서로 critical → major → minor → nit입니다.
maxInlineComments는 인라인으로 다는 코멘트의 최대 개수를 지정하는 항목이며, 기본값은 25입니다.
심각도 순으로 이 개수만큼만 인라인으로 달립니다. 다만 넘친 지적을 버리는 것이 아니라, 요약 코멘트의 접기 블록에 목록으로 남깁니다.
exclude와 include는 동작 방식이 서로 다르므로 구분해서 사용해야 합니다. 둘 다 glob 패턴 배열이며, 경로는 리포지토리 루트 기준이고 .로 시작하는 숨김 파일에도 매칭됩니다.
| 동작 | |
|---|---|
exclude |
적은 패턴이 기본 목록에 추가된다 |
include |
적으면 기본값([])을 대체한다
|
include를 적으면 거기에 매칭되는 파일만 리뷰 대상이 되며, 비워두면 제한이 없습니다. 둘 다 지정한 경우 include를 통과한 뒤 exclude에 걸리는 파일은 제외됩니다. 즉 exclude가 우선합니다.
기본 exclude 목록은 다음과 같으며, 여기 있는 항목은 다시 적을 필요가 없고 없앨 수도 없습니다.
**/node_modules/** **/dist/** **/build/** **/out/** **/.next/**
**/coverage/** **/vendor/** **/*.min.js **/*.map **/*.snap
**/*.lock **/package-lock.json **/pnpm-lock.yaml **/yarn.lock
**/*.png **/*.jpg **/*.jpeg **/*.gif **/*.svg **/*.ico
**/*.pdf **/*.woff*
패턴과 무관하게 **바이너리 파일과 삭제된 파일은 항상 제외됩니다.
maxFiles는 리뷰할 최대 파일 수를 지정하는 항목이며, 기본값은 40입니다.
제외 규칙을 통과한 파일을 변경량이 큰 순서로 정렬한 뒤 앞에서부터 이 개수만큼만 리뷰 대상으로 가져갑니다. 예산이 부족할 때 사소한 파일부터 먼저 제외되도록 하려는 의도입니다. 잘린 파일 수는 리뷰 요약 하단에 (N개 제외)로 표시됩니다.
maxFileChars는 파일 하나의 diff를 프롬프트에 넣을 때의 최대 문자 수이며, 기본값은 24000입니다.
이 값을 넘는 파일은 뒷부분이 잘린 채로 들어갑니다. 큰 파일의 뒷부분이 리뷰되지 않는다면 이 값을 올리시기 바랍니다.
maxPromptChars는 한 번의 모델 호출에 실어 보낼 최대 문자 수이며, 기본값은 140000입니다(코드 기준 대략 4만 토큰).
이 값은 다음 두 군데에 쓰입니다.
- 청크 분할 기준: diff가 이 값의 절반을 넘으면 파일 단위로 쪼개어 여러 번 호출합니다. 청크가 2개면 리뷰 시간과 토큰 사용량도 대략 2배가 됩니다.
- 최종 절단: 한 번의 호출에서 diff 부분은 이 값의 85% 지점에서 잘립니다.
리뷰가 자주 실패한다면 이 값을 줄이는 것이 맞습니다.
autoReview는 PR이 열리거나 커밋이 밀렸을 때 자동으로 리뷰할지를 결정하는 항목이며, 기본값은 true입니다.
false로 두면 /review로 호출할 때만 리뷰가 실행됩니다.
triggerPrefix는 리뷰를 호출하는 코멘트 명령이며, 기본값은 /review입니다.
triggerPrefix: '/gsml-code-review-bot review'**
/로 시작하는 값만 사용할 수 있습니다.
이 아래 항목들은 보통 건드리지 않습니다.
language는 리뷰 코멘트의 언어를 지정하는 항목이며, 기본값은 ko입니다.
모델에게 "이 언어로 써라"라고 지시하는 값으로, ko · en · ja · zh는 각각 한국어 · English · 日本語 · 中文으로 풀어서 전달되고, 그 외의 값은 적은 문자열 그대로 전달됩니다(Português처럼 적어도 동작합니다).
코드 · 식별자 · 에러 메시지는 언어 설정과 무관하게 원문 그대로 유지됩니다.
temperature의 기본값은 0.2입니다. 리뷰는 창의성보다 일관성이 중요하므로 낮게 설정되어 있으며, 값을 올려야 할 이유는 거의 없습니다.
maxOutputTokens는 모델이 한 번에 출력할 수 있는 토큰 수이며, 기본값은 16384입니다.
이 모델은 추론을 끌 수 없고, 추론에 쓰인 토큰도 이 예산에 함께 포함됩니다. 값이 부족하면 응답이 JSON을 다 쓰지 못한 채 잘려 리뷰가 실패하므로, 줄이는 것은 권장하지 않습니다.
서버 쪽에서 특정 항목을 고정해 둘 수 있으며, 이 경우 리포지토리 설정보다 서버 설정이 우선합니다. 설정을 분명히 적었는데도 반영되지 않는다면 이 경우일 수 있습니다.
고정 대상이 될 수 있는 항목은 model · baseUrl · language · minSeverity · autoReview · maxFiles · triggerPrefix · customInstructions입니다. 나머지 항목(minConfidence · maxInlineComments · exclude · include 등)은 항상 리포지토리 설정이 적용됩니다.
무엇이 고정되어 있는지는 관리자에게 문의하시기 바랍니다.