Permissions
Roboticks is built to the principle of least privilege. The App requests only the scopes it needs to read your code, post a Check Run, and comment on PRs. We do not request admin, we do not write to your code, and we do not read secrets.This is a complete list. If you see Roboticks asking for a scope that is not on this page, do not install — open a ticket at hello@roboticks.io and we’ll investigate.
Repository permissions
Organisation permissions
None requested.User permissions
None requested.What we deliberately do not request
Webhook events we subscribe to
Full event payload handling lives in Webhooks.
Token model
Two distinct tokens are issued per installation:- App JWT — signed with the App’s private key (held only by Roboticks). Used to call
/app/installations/...endpoints. Expires after 10 minutes; rotated continuously. - Installation token — exchanged on demand via the App JWT. Scoped to the installation and the resources the installation can see. TTL: 1 hour. Cached server-side, never persisted to disk, never shipped to runners.
How we minimise blast radius
- No long-lived secrets shipped to client devices. The App private key never leaves the backend.
- Per-SHA token issuance. A runner that processes a stale job cannot replay its token against a different SHA.
- Audit log of every API call is exposed under Settings → Audit Log in the dashboard for paid tiers.
- HMAC-verified webhooks with replay protection. See Webhooks → Verification.
Reviewing what’s installed
In GitHub: Settings → Applications → Installed GitHub Apps → Roboticks → Configure. You can see the exact repos the App has access to and revoke any of them. In Roboticks: Settings → Integrations → GitHub App shows the installation, the linked project(s), the webhook secret rotation date, and a live “last webhook seen” timestamp.Next
Webhooks
HMAC verification, replay protection, payload examples.
Check Runs
The Check Run summary markdown with a sample.