We use Github Enterprise across our entire IT organization for hosting our project repositories. It solves the problem of source control for enterprise applications and it does that really well. It also has solid API's and its very well integrated with other Continuous Integration tools, that makes its customization quite easy.
Pros
Easy and intuitive UI. This is a big plus for anyone wanting to just explore the repository without cloning it.
Solid security model for repositories. You can provide Dev access or limited access to the repositories that enable collaboration across the org.
Robust Pull Requests (PR) model. We use PR to do code reviews and the PR feature set is easy and intuitive. You can request PR's for other dev's, they can write comments at a specific line of code and you can reply back to that comment using their UI. All of this enables healthy communication on code.
Endless customizations. Github is wildly popular, so it has solid integrations with other developer tools. You can also add webhooks to trigger deployments when a new branch has been merged into Master. This allows for a seamless continuous integration pipeline.
Robust API documentation. The older version of Github offers easy REST interface and their newer API implementation uses GraphQL, which is robust and allows Dev's to build their own tools on top of Github
Branch Protections. You can protect a specific branch on your repo and restrict who can directly commit/delete that branch. This prevents unintended code base deletions .
Project tracking using Github. Github also provides tracking using its interface. You can create development tasks, assign them and track the left over work using the Github interface. Which makes it a one stop shop for everything.
Cons
The Pull Request screen would hide the previous comments when a new commit has been made. This could be a bit confusing tracking all the comments on a PR.
The network tracking branch could also use some improvement. It's hard to track all the open branches and where they all merge on the repo. The screen could use some improvement.
It does not provide integrated CI tool. There are competitors of Github that provide integrated deployment tool and Github could use that improvement.
Likelihood to Recommend
It's well suited if you want a no-nonsense version control for your organization. GitHub is quite popular and you have tons of solid integrations that would simplify your continuous integration pipeline. The open source git tracking allows you to work while you are offline, so you don't even need to be online all the time to make the commits. However, GitHub is a bit expensive compared to Gitlab or other alternatives. So, if cost is a concern, I would look elsewhere.
VU
Verified User
Engineer in Information Technology (Farming company, 10,001+ employees)