What is gitosis?
gitosis is simply an access control list for git, the (famous) stupid content tracker. Once you have a git repository, there are many ways to setup how people will access it. You might prefer publishing your repository with read-only access via the git:// protocol. But when it comes to pushing to the repository, it's essential to decide by whom and how the repository will be accessed. Generally, you wouldn't prefer letting everyone pushing changes and hopefully ruin your repository. Therefore you need some kinds of authorization methods such as:
- SSH Authentication
- HTTP Authentication (webdav)
- gitosis (using SSH)
The rest of this document is about the third method. (Afterall, the title says it all.)
What does gitosis do?
With gitosis, you have the ability to pull from and push to the repository with just one system account. You don't need to create SSH accounts for each user who will have write access to the repository. Once you install the package (see below), there will be system user created on your system called gitosis with a home directory in /srv.
How to install gitosis?
I've just packaged gitosis in AUR with the name gitosis-git. You can simply download the necessary files and build the package using makepkg or simply use yaourt to install it. You need git and python installed on your computer in order to compile and install gitosis.