Skip to content

Repository Config

김준혁 edited this page Aug 14, 2026 · 6 revisions

설정

  • 이 페이지는 설정 파일의 전체 항목을 다루는 레퍼런스입니다.
  • 리포지토리 루트에 설정 파일을 두면 리뷰 방식을 팀에 맞게 바꿀 수 있습니다.
  • 봇은 파일이 없어도 기본값으로 동작하므로, 필요할 때만 활용하세요.

파일 위치

봇은 아래 네 곳을 순서대로 찾아 먼저 발견된 파일 하나만 사용합니다. 여러 개를 두더라도 나중에 발견된 파일은 무시됩니다.

  1. .reviewbot/config.yml
  2. .reviewbot/config.yaml
  3. .reviewbot.yml
  4. .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

minSeverity는 이 값 미만의 심각도는 코멘트하지 않도록 하는 항목이며, 기본값은 minor입니다. 심각도는 높은 순서로 criticalmajorminornit입니다.

maxInlineComments

maxInlineComments는 인라인으로 다는 코멘트의 최대 개수를 지정하는 항목이며, 기본값은 25입니다.

심각도 순으로 이 개수만큼만 인라인으로 달립니다. 다만 넘친 지적을 버리는 것이 아니라, 요약 코멘트의 접기 블록에 목록으로 남깁니다.

리뷰 범위

exclude · include

excludeinclude동작 방식이 서로 다르므로 구분해서 사용해야 합니다. 둘 다 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

maxFiles는 리뷰할 최대 파일 수를 지정하는 항목이며, 기본값은 40입니다.

제외 규칙을 통과한 파일을 변경량이 큰 순서로 정렬한 뒤 앞에서부터 이 개수만큼만 리뷰 대상으로 가져갑니다. 예산이 부족할 때 사소한 파일부터 먼저 제외되도록 하려는 의도입니다. 잘린 파일 수는 리뷰 요약 하단에 (N개 제외)로 표시됩니다.

maxFileChars

maxFileChars는 파일 하나의 diff를 프롬프트에 넣을 때의 최대 문자 수이며, 기본값은 24000입니다.

이 값을 넘는 파일은 뒷부분이 잘린 채로 들어갑니다. 큰 파일의 뒷부분이 리뷰되지 않는다면 이 값을 올리시기 바랍니다.

maxPromptChars

maxPromptChars는 한 번의 모델 호출에 실어 보낼 최대 문자 수이며, 기본값은 140000입니다(코드 기준 대략 4만 토큰).

이 값은 다음 두 군데에 쓰입니다.

  • 청크 분할 기준: diff가 이 값의 절반을 넘으면 파일 단위로 쪼개어 여러 번 호출합니다. 청크가 2개면 리뷰 시간과 토큰 사용량도 대략 2배가 됩니다.
  • 최종 절단: 한 번의 호출에서 diff 부분은 이 값의 85% 지점에서 잘립니다.

리뷰가 자주 실패한다면 이 값을 줄이는 것이 맞습니다.

트리거

autoReview

autoReview는 PR이 열리거나 커밋이 밀렸을 때 자동으로 리뷰할지를 결정하는 항목이며, 기본값은 true입니다.

false로 두면 /review로 호출할 때만 리뷰가 실행됩니다.

triggerPrefix

triggerPrefix는 리뷰를 호출하는 코멘트 명령이며, 기본값은 /review입니다.

triggerPrefix: '/gsml-code-review-bot review'

**/로 시작하는 값만 사용할 수 있습니다.

모델 · 출력

이 아래 항목들은 보통 건드리지 않습니다.

language

language는 리뷰 코멘트의 언어를 지정하는 항목이며, 기본값은 ko입니다.

모델에게 "이 언어로 써라"라고 지시하는 값으로, ko · en · ja · zh는 각각 한국어 · English · 日本語 · 中文으로 풀어서 전달되고, 그 외의 값은 적은 문자열 그대로 전달됩니다(Português처럼 적어도 동작합니다).

코드 · 식별자 · 에러 메시지는 언어 설정과 무관하게 원문 그대로 유지됩니다.

temperature

temperature의 기본값은 0.2입니다. 리뷰는 창의성보다 일관성이 중요하므로 낮게 설정되어 있으며, 값을 올려야 할 이유는 거의 없습니다.

maxOutputTokens

maxOutputTokens는 모델이 한 번에 출력할 수 있는 토큰 수이며, 기본값은 16384입니다.

이 모델은 추론을 끌 수 없고, 추론에 쓰인 토큰도 이 예산에 함께 포함됩니다. 값이 부족하면 응답이 JSON을 다 쓰지 못한 채 잘려 리뷰가 실패하므로, 줄이는 것은 권장하지 않습니다.

설정할 수 없는 값

서버 쪽에서 특정 항목을 고정해 둘 수 있으며, 이 경우 리포지토리 설정보다 서버 설정이 우선합니다. 설정을 분명히 적었는데도 반영되지 않는다면 이 경우일 수 있습니다.

고정 대상이 될 수 있는 항목은 model · baseUrl · language · minSeverity · autoReview · maxFiles · triggerPrefix · customInstructions입니다. 나머지 항목(minConfidence · maxInlineComments · exclude · include 등)은 항상 리포지토리 설정이 적용됩니다.

무엇이 고정되어 있는지는 관리자에게 문의하시기 바랍니다.

GSML 기반 코드 리뷰 봇

Clone this wiki locally