Security
How Vigil protects your code and infrastructure.
Read-Only Analysis
Vigil performs static, read-only analysis of your PR diffs. It does not clone your repository, execute any code, or modify any files. The analysis pipeline reads the diff provided by the GitHub API and runs all verification signals against it without ever touching your codebase directly.
- No code execution — all analysis is static
- No repository cloning — only diff data from the GitHub API
- No access to your environment variables or secrets
- No write access to your repository beyond PR comments and check runs
No Code Storage
Vigil does not store your source code. Diff data is processed in memory during the analysis pipeline and discarded after results are posted. Only metadata is persisted: scores, signal results, PR numbers, and timestamps. Your code never touches disk on our servers.
Fork PR Trust Model
Fork PRs use default branch config
When a fork opens a PR against your repository, Vigil reads .vigil.yml from your repository's default branch (usually main), not from the fork's PR head. This prevents untrusted forks from injecting malicious configuration.
Command Trust Gate
Vigil commands (/vigil retry, @vigil recheck, etc.) can only be triggered by users with OWNER, MEMBER, or COLLABORATOR association to the repository. This prevents external users from spamming re-runs on public repositories.
Credential Handling
Vigil never stores, logs, or displays actual credential values. When the Credential Scan detects a secret, the match is immediately redacted in all output — including PR comments, check run details, and server logs. The only information preserved is the type of credential detected and the line number.
LLM Data Boundaries
Vigil sends PR diffs and metadata to its hosted LLM for analysis. This data is used solely for verification and is not stored or used for model training. LLM prompts include data boundary markers and backtick escaping to prevent prompt injection from PR content.
Infrastructure
Vigil runs on EU-hosted servers (Germany). All data in transit is encrypted via TLS. The database stores only execution metadata (scores, signal results, timestamps) — never source code or diff content.