Skip to main content

Stably GitHub App Permissions

Our GitHub App powers automated exploratory testing on pull requests. It requests the smallest set of repository permissions needed to read code safely, run tests, and report results back to developers.
PermissionAccessWhy we need itRuntime behavior
ChecksRead & writeLet reviewers dismiss a failing run without rerunning tests.Responds to the Ignore button on our check run by marking it as skipped.
IssuesRead & writeSurface testing updates directly on the pull request.Reads PR threads to locate preview URLs and posts/upserts comments, reactions, and status updates.
Pull requestsRead-onlyUnderstand what changed before launching tests.Reads PR metadata and diffs to decide whether the change is testable and to build context for the agent.
ContentsRead-onlyInspect repository structure without modifying source.Lists branches, reads .github/pull_request_template.md, and issues short-lived read tokens for cloning during a run.
MetadataRead-only (default)Required by GitHub for any installation.Supports webhook payloads and repository identification; no content is stored.
We do not request write access to repository contents, workflows, or organization settings.

Webhook events we subscribe to

  • pull_request: Triggers autonomous testing when a PR opens, is marked ready for review, or closes.
  • issue_comment: Watches for preview URLs or @stablyai mentions to start or resume a run.
  • check_run.requested_action: Lets maintainers skip a failing run directly from the Checks tab.
  • installation lifecycle events: Keeps our installation records in sync (created, deleted, suspended, unsuspended).

Installation tokens & repository access hygiene

  • Every explorative test run requests a fresh installation token scoped to contents: read only.
  • Tokens are discarded immediately after the run finishes.
  • No long-lived repo credentials are stored in our systems.

GitHub data we store

  • Installation metadata: installation ID, owning account, and the repo/branch configured for testing.
  • Test annotations: PR number, run status, preview URLs already processed.
  • We never persist raw repository contents or user OAuth tokens.

What we never do

  • Push commits, merge pull requests, or edit repository files.
  • Access organization members, secrets, or billing data.
  • Call GitHub APIs outside the scopes listed above.

Questions or security reviews? Reach us at security@stably.ai. We can also provide SOC 2 and penetration-test summaries under NDA.
I