Christoph Jahn

Site Menu

 

Links

Recent Comments

Social Links

Site search

Recent Posts

Categories

Tags

Architecture BibTeX Book BPM BPM and SOA C-64 CentOS CIFS Commodore Communication Directory EA ESB Fedora Git gitosis Java LaTeX LDAP Lifecycle Management Linux Management NAS New York OpenSolaris Palm Pilot Password Pattern Performance Perl Pictures Podcast RedHat Review RHEL Samba SMB SOA Software Subversion SVN Travel VCS Washington Web Service

Scripts for gitosis

gitosis is a nice program for hosting git repositories without having to give regular access to users. Using SSH under the covers, it basically acts as a special shell, thus limiting access to git. There are a number of nice tutorials available that explain how to make things work. I particularly liked this one. However, there is a lot of manual steps involved and a lot of errors can happen. I have therefore spent some time and started writing a few shell scripts that provide a more comfortable interface. At the moment the following scripts exist:

  • gitosis-init.sh : Initializes gitosis and “installs” a regular user (not git or gitosis) for further admin work. This needs to be executed locally on the machine that runs gitosis. In order to avoid password hazzle, it is recommended to run it as root. Alternatively you can run it as the gitosis user. However, this mode has not been tested well so far. Any feedback is highly welcome.
  • gitosis-add-repo.sh : Puts an existing local git repository into a remote gitosis repository.

The following scripts are currently planned for the future (other ideas are welcome!):

  • Add user to gitosis (copy SSH public key over)
  • Add user to repo (read/write access)

Download: gitosis-scripts.tgz

Please note that the scripts were written on Debian Lenny (v5) and so far only tested on this system. For more detailed instructions please check out the man pages (also included in the scripts).

[Update 2010-01-03: You may also want to check on gitolite, which is a gitosis rewrite in Perl with far more granular access control.]

Comments

Comment from Yeago posting from United States United States
Time July 27, 2009 at 3:46 am

I was unable to clone the admin directory until I did a permissions fix on .ssh and the contents. They will be ignored if they are group or other writable. Don’t know why the perms were set that way.

Comment from Christoph Jahn posting from Germany Germany
Time July 27, 2009 at 9:15 am

Thanks for the hint, I will add a check for the permissions

Write a comment