Phabricator isn't code hosting, it's repository viewing. The code is still hosted in whatever existing SCM tool is being used.
It does have a lot of features that overlap with github which is why it is a bit confusing.
We link to GitHub because they have more infrastructure than we do for handling heavy read loads.
Generally speaking, we proxy requests and pass them through to the VCS after performing authentication and broad permission checks. Requests are rewritten slightly to remap user-facing display paths to actual paths on disk. Some additional features act through commit hooks.