Renaming the TYPO3 Github Repository

Categories: Development, TYPO3 CMS Created by Benni Mack
Photo of interface for changing repository name. Showing the name "typo3".
It's time for another cleanup of relics from times long past: The TYPO3 Core Team is changing the official repository name on GitHub from TYPO3/TYPO3.CMS to typo3/typo3.

The original naming scheme comes from a time where we had to distinguish between TYPO3 (the CMS) and the Flow/Neos packages. As time went by, the need for that distinction disappeared and our package-publishing mechanism has evolved: The main repository is now a monorepo, which contains the TYPO3 Core and system extensions. The actual packages are split from this repository and published separately as a read-only repository. 

To avoid confusion for newcomers and align our naming scheme with other projects, we decided to rename our repository typo3/typo3.

Who Is Affected

This change concerns you in any of the following cases:

  • You are an active core developer.
  • You cloned the TYPO3.CMS repository directly from GitHub.
  • You are using a reference to the GitHub repository in your projects.

As GitHub will provide redirects for a while, projects and clones will not break immediately. However, GitHub will show a warning and you should use the new URLs.


The change will come into effect on Monday, 19 July.

Changes for Core Developers

We still use Gerrit for our review and quality assurance system, so nothing will change in the general workflow process for new patches.

The current core development workflow has been using a git clone directly from and a special pushInsteadOf config to push to Gerrit (the review system). 


The basic flow used to look like this:

git clone git:// .
git config url."ssh://<YOUR_TYPO3_USERNAME>".pushInsteadOf git://
git config remote.origin.push +refs/heads/master:refs/for/master


The recommended—new—way of doing this is:

git clone .
git config remote.origin.pushurl "ssh://<username>"
git config remote.origin.push +refs/heads/master:refs/for/master

The first line changes cloning from our own infrastructure on to the new GitHub URL, as it is faster and maintained by GitHub. 

The second line sets the remote pushUrl to Gerrit—this way, the pushInsteadOf line is no longer needed.

The third line ensures that master pushes are automatically rewritten to refs/for/master, the Gerrit-compatible way of publishing a patch for the master branch. The line can be repeated and adjusted for all other active branches (10.4 for example).

Additional Considerations

If you have an existing .gitconfig file for core development, make sure to change it accordingly:    

  • Switch the origin to GitHub
  • Remove the pushInsteadOf config
  • Add the pushUrl config 

We recommend cloning using SSH for improved performance and security.

Help and Support

If you have questions or run into problems with these changes, please let us know in the TYPO3 Slack #typo3-cms-coredev channel.

Additional contributors for this article
  • Proofreader : Mathias Bolt Lesniak