Security
Permissions & data handling
Verify before connecting
Start with the public Shimpilot sandbox instead of production code. Its fixtures and expected scenarios are visible before a scan. You can scan it publicly without authorization, or create a disposable copy and grant the GitHub App access to that repository alone to test the complete Draft PR workflow.
Repository permissions
Shimpilot accesses repositories allowed by your installation of its GitHub App. The configured permissions are Metadata read-only, Contents read/write for cloning and committing a migration branch, Pull requests read/write for migration PRs, Checks and Commit statuses read-only for CI state, and Actions read-only so Automatic mode can read bounded failed-job logs when GitHub check annotations do not contain the useful compiler or test error. Automatic merge also requires Administration read-only so Shimpilot can inspect branch protection and applicable rules before deciding whether CI requirements are satisfied. Shimpilot does not request Administration write access and never changes branch protection. Choose selected repositories during installation and review the granted scope in GitHub.
GitHub App access
Access is scoped through a GitHub App installation, using short-lived installation access tokens for each operation. Shimpilot never requests or stores a full-account personal access token or user OAuth token for repository actions.
Source-code handling
A repository is cloned with a shallow, single-commit clone into an ephemeral workspace for the duration of one scan or migration attempt. The workspace is unconditionally removed afterward in cleanup handlers, including handled failures. Findings can retain source excerpts and migration records retain diffs. Infrastructure failures can interrupt cleanup; operators must enforce workspace retention on worker hosts.
Secrets and environment variables
Credential screening and error redaction reduce accidental disclosure in prompts, logs, and displayed errors. Store application secrets outside repository source. Slack webhook destinations support application-level encryption with a deployment-managed key; see the security page for data handling and current limitations.
