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.
Installed with debian. Clone :gitosis-admin if you are part of the admin team
/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
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 email@example.com: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.
Add loglevel = DEBUG below [gitosis] (2nd line). Then you get more output when login fails or no permissions are given.