Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GitHub Enterprise public vs. private repo

If we are using GitHub Enterprise inside the company and the Private Mode is enabled, what's different between a public and private repo?

like image 804
Jirong Hu Avatar asked Oct 14 '15 16:10

Jirong Hu


3 Answers

Typically, your Github Enterprise instances are visible to developers within your organization. However, also within your organization, you might want to have a more fine-grained control of who is allowed to see which repository.

Because of that, Github Enterprise knows two visibilities of repositories - private and public.

It's straight forward, as the documentation tells us:

Public repositories are a great choice for getting started! They're visible to any user on your GitHub Enterprise instance, so you can benefit from a collaborative community.

Private repositories require a little more setup. They're only available to you, the repository owner, as well as any collaborators you choose to share with.


Edit for clarification: The Github Enterprise private mode, does regulate access on a different level: it merely defines that the forge itself cannot be accessed without being logged in.

like image 65
Maximilian C. Avatar answered Oct 12 '22 23:10

Maximilian C.


Since May 23rd, 2019, you also have the internal repository visibility (still in beta)

The internal repository visibility option is available to customers with an Enterprise account.

This new visibility option makes it easier to innersource code and projects to your organization members while restricting access to outside collaborators.

That might be easier to manage than a private repo, where you need to add collaborators: here, every collaborators (to your organization) is already added to an internal repo: the rest of the world is not.

See more at "Creating an internal repository":

You can use internal repositories to practice "innersource" within your enterprise account. Members of organizations in 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 members of the enterprise account have read permissions to the internal repository and can create issues in the repository.

Members of the enterprise account can't edit the repository's code directly, but they can fork the repository and create a pull request from their fork.

Internal repositories are not visible to people outside of the enterprise account, including outside collaborators on organization repositories.

like image 31
VonC Avatar answered Oct 13 '22 00:10

VonC


Private Mode for the GitHub Enterprise instance is a different concept than Public/Private settings for a Repository.

In private mode, GitHub Enterprise requires every user to sign in to access the installation. Anonymous clones over git:// are disabled and—if built-in authentication is enabled—new users can't sign up and must be invited by an administrator.

So the private mode setting really means that users must log in to access the instance. If your GitHub Enterprise instance is on a public-facing IP, it needs to have private mode enabled.

Public and Private repositories will still affect visibility/access to users that belong to an Organization, Team, or Repository.

like image 34
osowskit Avatar answered Oct 12 '22 23:10

osowskit