Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
54 lines (47 loc) · 3.11 KB
/
Copy path.env.example
File metadata and controls
54 lines (47 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# ── Claude API ──────────────────────────────────────────────────────────────
ANTHROPIC_API_KEY=sk-ant-your-key-here
# Reviewer + reflection agents, and the judge (a different, stronger model).
# A repo's .codesage.yml overrides these for Action runs.
CODESAGE_MODEL=claude-sonnet-5
CODESAGE_JUDGE_MODEL=claude-opus-5
# Effort: low | medium | high | xhigh | max
CODESAGE_REVIEWER_EFFORT=medium
CODESAGE_JUDGE_EFFORT=high
# Hard cap on model spend per review, in USD.
CODESAGE_BUDGET_USD=0.50
# LangGraph checkpointer DSN (psycopg). Empty = DATABASE_URL without "+asyncpg".
CODESAGE_CHECKPOINT_DSN=
# ── Embeddings (pgvector RAG) ────────────────────────────────────────────────
# If VOYAGE_API_KEY is set, Voyage embeddings are used; otherwise CodeSage falls
# back to a deterministic local hashing embedder (good enough for dev/demo).
VOYAGE_API_KEY=
CODESAGE_EMBED_MODEL=voyage-3
CODESAGE_EMBED_DIM=1024
# ── Database ─────────────────────────────────────────────────────────────────
DATABASE_URL=postgresql+asyncpg://codesage:codesage@db:5432/codesage
POSTGRES_USER=codesage
POSTGRES_PASSWORD=codesage
POSTGRES_DB=codesage
# ── GitHub (optional — for fetching real PRs) ────────────────────────────────
GITHUB_TOKEN=
# ── Behavior ─────────────────────────────────────────────────────────────────
# Judge score (0-1) below which a review requires human approval.
CODESAGE_HITL_THRESHOLD=0.6
# ── Security ─────────────────────────────────────────────────────────────────
# API keys accepted on /api/v1 (comma-separated). REQUIRED: with none set the
# API refuses every request. Generate one with:
# python -c "import secrets; print(secrets.token_urlsafe(32))"
CODESAGE_API_KEYS=
# Local development only: skip API-key checks entirely. Never on a reachable host.
CODESAGE_AUTH_DISABLED=false
# Directories POST /ingest may read (comma-separated). Empty disables API ingest;
# the CLI (python -m scripts.ingest_repo) is unaffected. Docker compose defaults
# this to /app (the API's own source) when unset.
CODESAGE_INGEST_ROOTS=
# Cross-origin callers allowed (comma-separated). Empty = none; the web console
# is same-origin through its proxy and doesn't need CORS.
CODESAGE_CORS_ORIGINS=
# ── Server ───────────────────────────────────────────────────────────────────
CODESAGE_HOST=0.0.0.0
CODESAGE_PORT=8000
CODESAGE_LOG_LEVEL=INFO