You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ Inspired by [code-review-graph](https://github.com/tirth8205/code-review-graph)
15
15
-**Evidence-driven code exploration**: DB-backed retrieval returns small file-level candidates with matched fields, evidence nodes, and optional docs before agents drill into exact graph nodes
16
16
-**Browser Wiki UI**: `ccg-server` can serve generated docs, tree search, DB-backed retrieval, Context Tray copying, and an Obsidian-style graph viewer
17
17
-**Custom annotations**: `@intent`, `@domainRule`, `@sideEffect`, `@mutates`, `@index` — search code by business context ([details](guide/annotations.md))
18
-
-**Webhook sync**: GitHub / Gitea push events → auto clone + build with per-repo branch filtering and `.ccg.yaml``include_paths` auto-loading ([details](guide/webhook.md))
18
+
-**Webhook sync**: GitHub / Gitea push events → auto clone + build with per-repo branch filtering and `.ccg.yaml`build-scope (`include_paths` / `exclude`) auto-loading ([details](guide/webhook.md))
Filters matching files and directories from the build scope. It supports path prefixes, filename globs, full-path globs, and regular expressions.
213
+
214
+
- CLI and incremental builds apply `exclude` while collecting source files.
215
+
- Webhook builds load `exclude` from the cloned repository's root `.ccg.yaml`.
216
+
217
+
```yaml
218
+
exclude:
219
+
- vendor/
220
+
- "*_generated.go"
221
+
```
222
+
210
223
### Regex Patterns
211
224
212
225
The `exclude` and `rules` pattern fields support regular expressions. Patterns containing `$`, `^`, `+`, `{}`, `|`, `\.`, `.*` are automatically detected as regex:
Copy file name to clipboardExpand all lines: guide/ko/webhook.md
+11-6Lines changed: 11 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -170,28 +170,33 @@ CCG를 Streamable HTTP로 실행하면 exporter가 설정되지 않은 경우에
170
170
- 지수적 증가: 1s → 2s → 4s → ... (MaxDelay에서 캡핑)
171
171
- 대기 중인 재시도는 컨텍스트 취소(서버 종료) 시 즉시 취소됩니다.
172
172
- 패닉(Panic)은 오류로 처리되어 재시도 대상이 됩니다.
173
-
- 잘못된 `.ccg.yaml``include_paths`설정과 같이 유효하지 않은 저장소 설정은 현재 이벤트에 대해 재시도 불가능한 오류로 처리됩니다.
173
+
- 잘못된 `.ccg.yaml``include_paths`또는 `exclude`처럼 유효하지 않은 저장소 빌드 범위 설정은 현재 이벤트에 대해 재시도 불가능한 오류로 처리됩니다.
174
174
- MaxAttempts를 초과하면 `ERROR` 로그를 남기고 동기화를 포기합니다 (다음 push 이벤트 시 재시도 가능).
175
175
176
176
이러한 기본값은 `--webhook-attempt-timeout`, `--webhook-retry-attempts`, `--webhook-retry-base-delay`, `--webhook-retry-max-delay`로 조정할 수 있습니다.
177
177
178
-
## `.ccg.yaml`include_paths 자동 적용
178
+
## `.ccg.yaml`빌드 범위 자동 적용
179
179
180
-
웹훅 빌드 중에 복제된 저장소 내부의`.ccg.yaml`에 있는 `include_paths` 설정을 자동으로 읽어 빌드 범위를 제한합니다.
180
+
웹훅 빌드 중에 복제된 저장소 루트의`.ccg.yaml`에서 `include_paths`와 `exclude`를 자동으로 읽습니다. `include_paths`는 빌드 범위를 좁히고, `exclude`는 그 범위에서 일치하는 파일 또는 디렉터리를 제외합니다.
181
181
182
182
```yaml
183
183
# 저장소 내부의 .ccg.yaml
184
184
include_paths:
185
185
- src/
186
186
- lib/
187
+
188
+
exclude:
189
+
- vendor/
190
+
- "*_generated.go"
187
191
```
188
192
189
-
- `.ccg.yaml`이 없거나 `include_paths` 키가 없는 경우 전체 디렉토리가 빌드됩니다.
193
+
- `.ccg.yaml`이 없으면 추가 제외 없이 전체 디렉토리가 빌드됩니다.
194
+
- 두 키는 각각 선택 사항입니다. `include_paths`가 없으면 전체 저장소가 대상이고, `exclude`가 없으면 추가 경로 필터링이 없습니다.
190
195
- CLI의 `--config` 플래그와 무관하게 작동합니다 (YAML 직접 파싱).
191
196
192
197
## 파싱 크기 제한 (Parse Size Limits)
193
198
194
-
웹훅 요청 본문의 크기는 저장소 파싱과는 별도로 제한됩니다. 웹훅 페이로드는 서버에 의해 제한되지만, 이후의 복제/빌드 단계는 기본적으로 소스 파싱 크기 제한이 없습니다. 기본적으로 CCG는 `include_paths`로 범위를 좁히지 않는 한 복제된 저장소의 모든 일치하는 소스 파일을 빌드합니다.
199
+
웹훅 요청 본문의 크기는 저장소 파싱과는 별도로 제한됩니다. 웹훅 페이로드는 서버에 의해 제한되지만, 이후의 복제/빌드 단계는 기본적으로 소스 파싱 크기 제한이 없습니다. 기본적으로 CCG는 `include_paths`로 범위를 좁히거나 `exclude`로 경로를 제외하지 않는 한 복제된 저장소의 모든 일치하는 소스 파일을 빌드합니다.
195
200
196
201
대규모 저장소에 대해 파싱 예산이 필요한 경우, `--max-file-bytes`, `--max-total-parsed-bytes` 또는 일치하는 `.ccg.yaml` 설정을 명시적으로 구성하십시오. CCG는 기본 웹훅 파싱 제한을 두지 않습니다.
197
202
@@ -225,7 +230,7 @@ CCG는 현재 웹훅 운영을 위한 `/metrics` 엔드포인트를 제공하지
225
230
`/status`가 degraded 웹훅 동기화를 보고하거나, 큐 대기 시간이 계속 증가하거나, 배포 재시작 중 수락된 이벤트가 중단되었을 수 있을 때는 아래 절차를 사용하십시오.
- Pending retries are immediately cancelled on context cancellation (server shutdown)
192
192
- Panics are treated as errors and are eligible for retry
193
-
- Invalid repository config, such as malformed `.ccg.yaml``include_paths`, is treated as non-retryable for the current event
193
+
- Invalid repository build-scope config, such as malformed `.ccg.yaml``include_paths` or `exclude`, is treated as non-retryable for the current event
194
194
- After exceeding MaxAttempts, logs an `ERROR` and abandons the sync (retryable on next push event)
195
195
196
196
These defaults can be tuned with `--webhook-attempt-timeout`,
197
197
`--webhook-retry-attempts`, `--webhook-retry-base-delay`, and
198
198
`--webhook-retry-max-delay`.
199
199
200
-
## `.ccg.yaml`include_paths Auto-Apply
200
+
## `.ccg.yaml`Build Scope Auto-Apply
201
201
202
-
During webhook builds, the `include_paths`setting from `.ccg.yaml`inside the cloned repo is automatically read to restrict build scope.
202
+
During webhook builds, CCG reads `include_paths`and `exclude`from `.ccg.yaml`at the cloned repository root. `include_paths` narrows the build scope, and `exclude` removes matching files or directories from that scope.
203
203
204
204
```yaml
205
205
# .ccg.yaml inside the repo
206
206
include_paths:
207
207
- src/
208
208
- lib/
209
+
210
+
exclude:
211
+
- vendor/
212
+
- "*_generated.go"
209
213
```
210
214
211
-
- If `.ccg.yaml` is absent or has no `include_paths` key, the entire directory is built
215
+
- If `.ccg.yaml` is absent, CCG builds the entire directory without additional exclusions
216
+
- Each key is optional: no `include_paths` means the whole repository is eligible, while no `exclude` means no extra path filtering
212
217
- Operates independently of the CLI's `--config` flag (direct YAML parsing, no viper)
213
218
214
219
## Parse Size Limits
215
220
216
221
Webhook request bodies are limited separately from repository parsing. The
217
222
webhook payload is capped by the server, but the subsequent clone/build step has
218
223
no default source parse size limit. By default, CCG builds every matching source
219
-
file in the cloned repository unless `include_paths` narrows the scope.
224
+
file in the cloned repository unless `include_paths` narrows the scope or
225
+
`exclude`filters paths out.
220
226
221
227
If a deployment needs a parse budget for large repositories, configure it
222
228
explicitly with `--max-file-bytes`, `--max-total-parsed-bytes`, or the matching
0 commit comments