Self-hosting
Configuration
The self-host configuration model: deployment env, private per-repo policy, feature flags, and review modes.
Config layers
- Environment
- Deployment-wide infrastructure, secrets, feature kill switches, and service URLs. Requires restart or recreate when changed.
- Private repo config
- Mounted GITTENSORY_REPO_CONFIG_DIR files for private per-repo policy. Read fresh each review.
- Public repo config
- The repo .gittensory.yml. Useful for transparent policy, but not for thresholds or rules you need to keep private.
- Built-in defaults
- Safe fallback when nothing is configured. Gate off, AI off, and no repo runs per-PR features until allowlisted.
Required baseline env
.env
PUBLIC_API_ORIGIN=https://reviews.example.com
GITHUB_APP_ID=123456
GITHUB_APP_SLUG=my-gittensory-app
GITHUB_APP_PRIVATE_KEY_FILE=/run/secrets/github-app-private-key.pem
GITHUB_WEBHOOK_SECRET=<random-webhook-secret>
GITTENSOR_REGISTRY_URL=https://example.invalid/registry.json
GITTENSORY_API_TOKEN=<random-32-byte-token>
GITTENSORY_MCP_TOKEN=<random-32-byte-token>
INTERNAL_JOB_TOKEN=<random-32-byte-token>Any FOO_FILE is loaded into FOO at startup. Explicit FOO wins over the file variant.
Per-PR feature flags
Most review capabilities need both their own flag and the repo in GITTENSORY_REVIEW_REPOS. This gives you a global kill switch and a per-repo rollout switch.
.env
GITTENSORY_REVIEW_REPOS=owner/repo,owner/another
GITTENSORY_REVIEW_UNIFIED_COMMENT=true
GITTENSORY_REVIEW_INLINE_COMMENTS=false
GITTENSORY_REVIEW_SAFETY=true
GITTENSORY_REVIEW_GROUNDING=true
GITTENSORY_REVIEW_RAG=false
GITTENSORY_REVIEW_ENRICHMENT=false
GITTENSORY_REVIEW_REPUTATION=falseEmpty
GITTENSORY_REVIEW_REPOS means no repos run the per-PR feature path, regardless of the individual flags.Private per-repo config
Mount a gitignored directory and point GITTENSORY_REPO_CONFIG_DIR at it. The first matching file wins and replaces the public repo config for that review.
config directory
gittensory-config/
owner__repo/.gittensory.yml
repo-name/.gittensory.yml
owner__repo.yml
.gittensory.ymlowner__repo/.gittensory.yml
gate:
enabled: true
aiReview:
mode: advisory
allAuthors: true
settings:
commentMode: all_prs
includeMaintainerAuthors: true
autonomy:
merge: observe
close: observe
agentDryRun: false
features:
safety: true
unifiedComment: true
rag: false
reputation: falseInstance-wide write switches
- Unset
- Normal mode. Per-repo autonomy and GitHub permissions decide what can be written.
- dry-run
- Compute reviews and audit as shadow, but suppress comments, checks, labels, merges, and closes.
- disabled
- Suppress writes as denied. Use when you need a hard instance-wide stop.
Next steps
Configure the GitHub integration in GitHub App and Orb, then add optional context through AI providers, REES, or RAG.