When you create a repository, you can choose to make the repository public or private. If you're creating the repository in an organization that is owned by an enterprise account, you can also choose to make the repository internal.
Public repositories are accessible to everyone on the internet. Private repositories are only accessible to you, people you explicitly share access with, and, for organization repositories, certain organization members. Internal repositories are accessible to members of your enterprise. For more information, see "About internal repositories."
Organization owners always have access to every repository created in an organization. For more information, see "Repository permission levels for an organization."
People with admin permissions for a repository can change an existing repository's visibility. For more information, see "Setting repository visibility."
Note: Internal repositories are available with GitHub Enterprise Cloud and GitHub Enterprise Server 2.20+. For more information, see GitHub's products."
You can use internal repositories to practice "innersource" within your enterprise account. Members of your enterprise account can collaborate using open source methodologies without sharing proprietary information publicly. For more information on innersource, see GitHub's whitepaper "An introduction to innersource."
All enterprise members have read permissions to the internal repository, but internal repositories are not visible to people outside of the enterprise account, including outside collaborators on organization repositories. For more information, see "Roles for an enterprise account" and "Repository permission levels for an organization."
Internal repositories are the default setting for all new repositories created in an organization owned by an enterprise account.
If a user is removed from an enterprise account, that user's forks of internal repositories are removed automatically.