About visibility for GitHub Apps
You can make your GitHub App registration public or private. If a GitHub App is created by an Enterprise Managed User, the "Public" option is disabled and the app is only installable by organizations within the Enterprise Managed User enterprise. Enterprise Managed User organizations can set their apps to be installable by any other organization in the enterprise, or just the organization that owns it. Apps created within an Enterprise Managed User account are never installable on accounts outside of your enterprise.
If a GitHub App registration is owned by an account that is not an Enterprise Managed User, and the app is set to public, any user on GitHub can install the app. If you set your GitHub App registration to private, it can only be installed on the account that owns the app.
You can register a GitHub App under your personal account or organization and make it available for other organizations to install. You do not need an enterprise plan or an organization account to make your GitHub App available to an organization even if the organization is owned by an enterprise on GitHub Enterprise Cloud.
Additionally, you can register a GitHub App under your enterprise. You can't make this app public, the app can only be installed on organizations within your enterprise, and can only be authorized by members of your enterprise.
If you want your GitHub App to be available to organizations in a GitHub Enterprise Server instance that you are not part of, then you need to take additional steps. For more information, see Making your GitHub App available for GitHub Enterprise Server.
If it is important for GitHub Enterprise Server users to be able to use your tool, consider using GitHub Actions instead of a GitHub App. Public actions are available on GitHub Enterprise Server instances with GitHub Connect. For more information, see "Enabling automatic access to GitHub.com actions using GitHub Connect" and "About GitHub Actions for enterprises" in the GitHub Enterprise Server documentation.
For information about changing the visibility of a GitHub App registration, see Modifying a GitHub App registration.
Public installation flow
Public GitHub Apps have a landing page with an Install button, so that other people can install the app in their repositories. If your GitHub App is public to all users on GitHub, you can also choose to publish it to GitHub Marketplace. For more information, see About GitHub Marketplace for apps.
Private installation flow
Private GitHub Apps can only be installed on the user or organization account of the app owner. Limited information about the app will exist on a landing page for the app, but the Install button will only be available to organization owners and app managers for the organization that owns the app, or the personal account if the GitHub App is owned by an individual account.
Enterprise-owned installation flow
Enterprise-owned GitHub Apps can only be installed by organization owners of organizations within the enterprise by using the installation URL. The app can not be installed on user accounts.