diff options
| author | lassulus <lass@aidsballs.de> | 2015-06-19 00:45:56 +0200 | 
|---|---|---|
| committer | lassulus <lass@aidsballs.de> | 2015-06-19 00:45:56 +0200 | 
| commit | 98775ff29ec15452a56a6e3262d454c41d7ee87b (patch) | |
| tree | 4ba97dc62d42ffc7a95d246fcfcf8977a6fd09a2 /modules | |
| parent | a54eca6f0f946171597e3a0c17ff55ea4842e637 (diff) | |
mors: add git.nix
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/mors/default.nix | 1 | ||||
| -rw-r--r-- | modules/mors/git.nix | 71 | 
2 files changed, 72 insertions, 0 deletions
diff --git a/modules/mors/default.nix b/modules/mors/default.nix index 8246130c7..d83d6abc9 100644 --- a/modules/mors/default.nix +++ b/modules/mors/default.nix @@ -26,6 +26,7 @@      ../../secrets/mors-pw.nix      ./repos.nix      ../lass/chromium-patched.nix +    ./git.nix    ];    nixpkgs = { diff --git a/modules/mors/git.nix b/modules/mors/git.nix new file mode 100644 index 000000000..1dd61d164 --- /dev/null +++ b/modules/mors/git.nix @@ -0,0 +1,71 @@ +{ config, lib, pkgs, ... }: + +{ +  imports = [ +    ../tv/git +  ]; + +  services.git = +    let +      inherit (builtins) readFile; +      # TODO lib should already include our stuff +      inherit (import ../../lib { inherit lib pkgs; }) addNames git; + +      krebs-private = name: desc: +          { +            inherit desc; +            hooks = { +              post-receive = git.irc-announce { +                nick = config.networking.hostName; # TODO make this the default +                channel = "#retiolum"; +                server = "ire.retiolum"; +              }; +            }; +          } +    in rec { +      enable = true; + +      users = addNames { +        tv = { pubkey = readFile <pubkeys/tv.ssh.pub>; }; +        lass = { pubkey = readFile <pubkeys/lass.ssh.pub>; }; +        uriel = { pubkey = readFile <pubkeys/lass.ssh.pub>; }; +        makefu = { pubkey = "xxx"; }; +      }; + +      repos = addNames { +        shitment = { +          desc = "shitment repository"; +          hooks = { +            post-receive = git.irc-announce { +              nick = config.networking.hostName; # TODO make this the default +              channel = "#retiolum"; +              server = "ire.retiolum"; +            }; +          }; +          public = true; +        }; +        testing = { +          desc = "testing repository"; +          hooks = { +            post-receive = git.irc-announce { +              nick = config.networking.hostName; # TODO make this the default +              channel = "#repository"; +              server = "ire.retiolum"; +            }; +          }; +          public = true; +        }; +      }; + +      rules = with git; with users; with repos; [ +        { user = lass; +          repo = [ testing shitment ]; +          perm = push master [ non-fast-forward create delete merge ]; +        } +        { user = [ tv uriel makefu ]; +          repo = [ testing shitment ]; +          perm = fetch; +        } +      ]; +    }; +}  | 
