GitHub App Enterprise Installs Expand Automation—With Important Permission Boundaries
GitHub’s enterprise-installation GA expands app permissions for admin workflows, but repository access and webhooks still require separate installations.
On this page
A classic personal access token can make automation easy to start and hard to govern. GitHub’s expanded enterprise installations for GitHub Apps give administrators another way to authorize automation at the enterprise level—but the new installation scope has boundaries that teams should understand before they migrate workflows.

What became generally available
GitHub announced on October 23 that installing GitHub Apps on an enterprise account is generally available. The expanded APIs and permissions are aimed at enterprise governance, security, and administrative settings: repository policies and rulesets, delegated bypass requests, two-factor requirements, verified domains, IP allowlists, access restrictions, member privileges, and related management operations. GitHub says the updates are also coming to GitHub Enterprise Server 3.24. [1]
The practical motivation is to move automation away from long-lived user credentials where an app identity and narrow permissions are a better fit. GitHub Apps have no permissions by default; the app requests a set, and the installation grants the relevant permissions. GitHub recommends selecting only the permissions the workflow needs. An installation token is tied to the app’s granted permissions rather than a user’s full account access. [3]
That makes the change relevant to central administration—such as automating repository policy checks or enterprise settings—but it does not eliminate the need to map every workflow’s actual API calls. A token migration is an authorization redesign, not a string replacement in a secrets manager.
Enterprise scope is not repository scope
The most important limitation is easy to miss. GitHub’s documentation says an enterprise-installed app can manage enterprise resources but does not automatically gain access to the enterprise’s organizations or repositories. To access repository or organization resources, the app must be installed separately on the organizations where it needs access. [2]
Enterprise installations also do not currently support webhooks. An app installed at the enterprise level cannot receive webhook events for enterprise activities, and it cannot call every enterprise API. A workflow that depends on repository events or organization data may therefore need additional installations or another event path. [2]
This separation is a security boundary and an implementation constraint. If an app needs to update an enterprise ruleset and then read code in repositories, those are two different scopes. Teams should document which installation authorizes each operation, where a user must approve the app, and how the integration handles a missing permission. “Installed at enterprise” should never be interpreted as “can see everything.”
A safer migration plan
Begin by inventorying each existing personal access token: owner, purpose, API endpoints, permissions, expiration, consumers, and recovery process. Identify whether the job runs as a person, a GitHub App, a GitHub Actions workflow, or another integration. Replace a token only when the app model supports the operations and the required host version is available.
For each candidate workflow, request the smallest permission set that will work. Prefer a read-only permission for inventory tasks. Separate governance actions such as changing rulesets or two-factor requirements from ordinary repository reads. Where possible, use a staging enterprise or non-critical organization to verify installation scope and permission failures before moving production automation.
Then test the whole lifecycle: app installation, token creation, API calls, rotation or revocation, and recovery. Confirm the expected permissions at both enterprise and organization level. If the app needs webhooks, check whether they are supported at the correct installation scope or whether the integration must subscribe at organization level. Treat a successful token request as only the first step; verify that the workflow cannot reach unrelated resources.
GitHub’s documentation also notes that enterprise installations are currently public preview in the product documentation and subject to change, while the October changelog describes the feature as generally available. The documentation and release update may reflect different stages or pages; administrators should verify the current behavior for their account and read the live API support matrix before depending on a specific operation. [1] [2]
What the announcement does not solve
App-based authorization can reduce dependence on a user-owned credential, but it does not make an overpowered app safe. A compromised app private key or a granted write permission can still be abused. A narrowly scoped integration with clear ownership is safer than a broadly privileged app whose permissions nobody reviews.
Nor does the release mean every classic PAT can be removed immediately. Some endpoints or workflows may not yet support the required app permission; some jobs need user-level actions; and older self-hosted versions may have different coverage. Keep a migration matrix with the API, required scope, host version, test result, and fallback. Avoid retaining an unused PAT “just in case,” but do not disable a credential until its replacement has passed the same operational checks.
The useful change is that more enterprise administration can now be performed through a GitHub App identity. The payoff depends on disciplined scope design: install the app where it needs to work, grant only the actions it needs, and test that each boundary behaves as intended.
For a related credential lifecycle example, see our coverage of GitHub CLI’s expiring OAuth tokens and the guide to installation token lifetimes.
Frequently asked questions
Can an enterprise-installed GitHub App access every repository in the enterprise?
No. Enterprise installations manage enterprise-level resources and do not automatically receive organization or repository permissions. To work with organization or repository resources, an app must also be installed on each relevant organization or repository.
Does GitHub Apps GA mean enterprises should delete all classic personal access tokens?
No. The release expands the API coverage available to GitHub Apps, but migration depends on the automation’s permissions, APIs, webhook needs, and host version. Inventory each workflow, choose narrow permissions, test it, and retain an approved recovery path during rollout.
Does the GitHub Apps enterprise installation feature work on GitHub Enterprise Server?
GitHub says the updates will be available in GitHub Enterprise Server 3.24. Check the deployed GHES version and the API support matrix before relying on enterprise-level app installation.



/* Comments */
Comments are offline right now — we reconnect automatically, nothing is lost.