Gitolite

From NixOS Wiki

Gitolite allows you to host Git repositories with fine-grained access control.

Installation

Obtain the SSH public key of the user you will use to configure gitolite, then add the following to your NixOS config:

services.gitolite = {
  enable = true;
  adminPubkey = "<ssh public key>";
};

When you rebuild, a new unit should start:

the following new units were started: gitolite-init.service

You can now check out the gitolite-admin repo using the gitolite user. Gitolite's configuration is located in conf/gitolite.conf and you can give users access by adding their public keys to keydir.