GitHub App permissions
What the Aevral GitHub App holds, what each token Aevral mints is capped to, what the review command uses, and which permission is reserved for an announced feature that is not live.
The Aevral GitHub App (name: aevral) is public: install it on any account or organization from https://github.com/apps/aevral. This page documents the permission set so you can review it before you install. The canonical security page is aevral.com/security.
What the App holds
| Permission | Level | Why |
|---|---|---|
| Contents | Read and write | Read: the repository archive a scan analyzes and full files at the head of a pull request. Write: reserved for the announced security-standard pull request (below), not used today |
| Issues | Read | Receive issue_comment events for the @aevral review command (below); no Aevral token carries it |
| Metadata | Read | Repository and organization structure (mandatory GitHub permission) |
| Checks | Write | Post the advisory Check on the scanned commit or the pull request head |
| Pull requests | Read and write | Read the diff and post review comments |
Events the App receives: pull_request and issue_comment. Aevral acts on an issue_comment event only when it is the review command; any other comment is ignored.
The App has no administration, secrets, workflows or deployments permission.
Every token is capped below that
The App's permissions are an upper bound. Each scan or pull request review gets its own token, minted for that job, limited to one repository, kept in memory only and never stored. Every token Aevral mints is capped to:
- Contents read
- Metadata read
- Checks write
- Pull requests write, for pull request reviews only
No token Aevral mints today carries Contents write or any Issues access. One stated exception to the one-repository rule: refreshing the list of repositories you selected uses an installation-wide token with the same capped permissions.
What Aevral writes
Advisory Check runs and pull request review comments, submitted as comments. Aevral does not commit, push, create branches, merge or approve. A Check never blocks a merge. Suggested fixes are text you apply yourself.
The review command (Issues read)
Live since 1 October 2026. Commenting @aevral review at the start of a new comment in the pull request conversation asks Aevral to review the whole pull request again, and the Check says when it ran. It acts only for the repository owner, a member of its organization or a collaborator, as GitHub marks them, never for a bot. The same commit can be re-reviewed at most 3 times, at least 10 minutes apart, and is not counted again. Aevral reads the comment from the webhook; it does not read your issues and no token it mints carries Issues access.
Announced, not live
This is why the App already holds Contents write. It is not live; until it ships, every token stays capped as above.
- Security-standard pull request (Contents write). A pull request that keeps a security standard file in your repository current. Aevral would write only to the branch
aevral/standard-sync, never to the default branch, never merges the pull request, and each repository can opt out.
Live state and any change to this list: aevral.com/security.
Which repositories
The App sees only the repositories your organization selects at install (every repository, if you choose All repositories). Pull request reviews start at install on those repositories, before anyone signs in to the console (25 free private reviews a month); Setup Complete or the Reviews page can turn them off. An opt-out stays off while the App stays installed; reinstalling the App turns reviews back on. Scans run when you trigger them, or on a schedule you configure on a paid scan plan.
Related: What a scan looks like, Security and data.