2015-11-09 18:51:26 +01:00
|
|
|
{ lib, ... }:
|
2015-07-11 16:55:22 +02:00
|
|
|
|
2016-10-13 21:01:22 +02:00
|
|
|
with lib;
|
|
|
|
|
2015-07-11 16:55:22 +02:00
|
|
|
let
|
2016-10-13 21:01:22 +02:00
|
|
|
addName = name: set:
|
|
|
|
set // { inherit name; };
|
|
|
|
|
|
|
|
addNames = mapAttrs addName;
|
2015-07-11 16:55:22 +02:00
|
|
|
|
|
|
|
commands = addNames {
|
|
|
|
git-receive-pack = {};
|
|
|
|
git-upload-pack = {};
|
|
|
|
};
|
|
|
|
|
|
|
|
receive-modes = addNames {
|
|
|
|
fast-forward = {};
|
|
|
|
non-fast-forward = {};
|
|
|
|
create = {};
|
|
|
|
delete = {};
|
|
|
|
merge = {}; # TODO implement in git.nix
|
|
|
|
};
|
|
|
|
|
|
|
|
permissions = {
|
|
|
|
fetch = {
|
|
|
|
allow-commands = [
|
|
|
|
commands.git-upload-pack
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
push = ref: extra-modes: {
|
|
|
|
allow-commands = [
|
|
|
|
commands.git-receive-pack
|
|
|
|
commands.git-upload-pack
|
|
|
|
];
|
|
|
|
allow-receive-ref = ref;
|
|
|
|
allow-receive-modes = [ receive-modes.fast-forward ] ++ extra-modes;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
refs = {
|
|
|
|
master = "refs/heads/master";
|
|
|
|
all-heads = "refs/heads/*";
|
|
|
|
};
|
|
|
|
|
|
|
|
in
|
2015-11-09 18:51:26 +01:00
|
|
|
commands // receive-modes // permissions // refs
|