GitServerSetup

From Openembedded.org
Jump to navigation Jump to search

Git Service Overview

Our git services are hosted on git.openembedded.org. There is a user called git and the repositories are located within /home/git/repositories. There is one repository for managing gitosis itself and currently one called openembedded.git with our metadata. git, webgit and gitosis are installed as debian packages, /etc/gitweb.con is pointing to /home/git/repositories. git-daemon is running as a serv the service configuration can be found in /var/services/git-daemon/run and it points to /home/git/repositories as configuration as well.


Service Infrastructure

gitosis

Installed with debian. Clone :gitosis-admin if you are part of the admin team

gitweb

/etc/gitweb.conf, it will list repositories from /home/git/repositories that have the gitweb flag in the object dir. This is the case for openembedded.git

git-daemon

It is running as runsv service. This means there is a /var/run/service/git-daemon/ directory and inside the run file is the command of git-daemon. As basepath it is pointing to /home/git/repositores. Everything with a special flag inside the repository will be exported via git-daemon. This is the case for the openembedded.git repository


Managing and Troubleshooting

Adding new keys

You will need admin rights. Then you can git-clone git@git.openembedded.org:gitosis-admin. You can add a key to keydir. Use name.pub for the key, then you can add name to the gitosis.conf. Commit your change and then git-push and the guy is able to push afterwards.

How the commit mails and ciabot work

In the openembedded.git repository there is the activated "update" hook. At the end of this script git-notify in /home/git is called. git-notify was copied from the wine project at a certain date, see the top of the file.

Troubleshooting

Add loglevel = DEBUG below [gitosis] (2nd line). Then you get more output when login fails or no permissions are given.