Skip to content

Regras de ignore, redação & orçamentos

Regras de ignore

O ctxpack combina três fontes (as posteriores podem sobrepor-se às anteriores via negação !):

  1. Defaults embutidosnode_modules/, .git/, dist/, lockfiles, .env*, extensões de assets binários comuns, etc. (ver DEFAULT_IGNORES).
  2. O teu .gitignore na raiz do repo (a menos que useGitignore: false).
  3. Globs --ignore passados na CLI (repetível).

O matcher suporta um subconjunto comum do .gitignore: comentários (#), negação (!), âncora (/prefixo), diretórios (trailing/) e globs * / **. É propositadamente pragmático, não uma implementação completa do gitignore.

Redação de segredos

Ativa por defeito. Reconhecidos e substituídos por placeholders:

Tipo Exemplo → placeholder
Chaves privadas -----BEGIN … PRIVATE KEY-----[REDACTED PRIVATE KEY]
JWTs eyJ….eyJ….sig[REDACTED JWT]
Chaves AWS AKIA…[REDACTED AWS KEY]
Tokens GitHub ghp_…[REDACTED GITHUB TOKEN]
Tokens Slack xoxb-…[REDACTED SLACK TOKEN]
Chaves de API sk-…[REDACTED API KEY]
Atribuições password = "…"password = "[REDACTED]"

A redação é best-effort — revê sempre o output antes de partilhar. Desliga com --no-redact se estiveres totalmente offline e confiares no destino.

Orçamento de tokens

--budget <n> (ou budgetTokens) inclui ficheiros até a estimativa acumulada exceder n; os restantes são reportados em skippedFiles. Os tokens são estimados a ~4 caracteres cada — rápido e agnóstico do modelo, suficiente para orçamentar.

Binários & tamanho

Ficheiros com um byte nulo são tratados como binários e saltados. Ficheiros maiores que maxFileBytes (default 512 KB) também são saltados. Ambos aparecem em skippedFiles.