From 0b00e7e70eefd3b22b65a29506003bd984dfb6f2 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 28 Jul 2015 20:19:54 +0200 Subject: makefu:rename to user-toplevel structure --- makefu/2configs/cgit-retiolum.nix | 70 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 makefu/2configs/cgit-retiolum.nix (limited to 'makefu/2configs/cgit-retiolum.nix') diff --git a/makefu/2configs/cgit-retiolum.nix b/makefu/2configs/cgit-retiolum.nix new file mode 100644 index 00000000..7b8e3bc9 --- /dev/null +++ b/makefu/2configs/cgit-retiolum.nix @@ -0,0 +1,70 @@ +{ config, lib, pkgs, ... }: +# TODO: remove tv lib :) +with import ../../4lib/tv { inherit lib pkgs; }; +let + + out = { + imports = [ ../../3modules/krebs/git.nix ]; + krebs.git = { + enable = true; + root-title = "public repositories "; + root-desc = "keep on krebsing"; + inherit repos rules; + }; + }; + repos = priv-repos // krebs-repos ; + rules = concatMap krebs-rules (attrValues krebs-repos) ++ concatMap priv-rules (attrValues priv-repos); + + krebs-repos = mapAttrs make-krebs-repo { + stockholm = { + desc = "take all the computers hostage, they'll love you!"; + }; + }; + + priv-repos = mapAttrs make-priv-repo { + autosync = { }; + }; + + + # TODO move users to separate module + make-priv-repo = name: { desc ? null, ... }: { + inherit name desc; + public = false; + }; + + make-krebs-repo = with git; name: { desc ? null, ... }: { + inherit name desc; + public = true; + hooks = { + post-receive = git.irc-announce { + nick = config.networking.hostName; + channel = "#retiolum"; + server = "cd.retiolum"; + }; + }; + }; + + set-owners = with git; repo: user: + singleton { + inherit user; + repo = [ repo ]; + perm = push "refs/*" [ non-fast-forward create delete merge ]; + }; + + set-ro-access = with git; repo: user: + optional repo.public { + inherit user; + repo = [ repo ]; + perm = fetch; + }; + + # TODO: get the list of all krebsministers + krebsminister = with config.krebs.users; [ lass tv uriel ]; + + priv-rules = with config.krebs.users; repo: + set-owners repo [ makefu ]; + + krebs-rules = with config.krebs.users; repo: + set-owners repo [ makefu ] ++ set-ro-access repo krebsminister ; + +in out -- cgit v1.2.3 From 9575e56d6980cd9770befce5605eabd290ca5dbb Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 29 Jul 2015 01:07:41 +0200 Subject: update paths in makefu cfg --- makefu/2configs/cgit-retiolum.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'makefu/2configs/cgit-retiolum.nix') diff --git a/makefu/2configs/cgit-retiolum.nix b/makefu/2configs/cgit-retiolum.nix index 7b8e3bc9..e1076933 100644 --- a/makefu/2configs/cgit-retiolum.nix +++ b/makefu/2configs/cgit-retiolum.nix @@ -1,10 +1,10 @@ { config, lib, pkgs, ... }: # TODO: remove tv lib :) -with import ../../4lib/tv { inherit lib pkgs; }; +with import ../../tv/4lib/{ inherit lib pkgs; }; let out = { - imports = [ ../../3modules/krebs/git.nix ]; + imports = [ ]; krebs.git = { enable = true; root-title = "public repositories "; -- cgit v1.2.3 From 671710c573980d859cb82993cd0514058a63262f Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 29 Jul 2015 14:22:24 +0200 Subject: makefu: add new git user makefu-omo --- makefu/2configs/cgit-retiolum.nix | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'makefu/2configs/cgit-retiolum.nix') diff --git a/makefu/2configs/cgit-retiolum.nix b/makefu/2configs/cgit-retiolum.nix index 777c16cf..7dfb181c 100644 --- a/makefu/2configs/cgit-retiolum.nix +++ b/makefu/2configs/cgit-retiolum.nix @@ -30,12 +30,13 @@ let post-receive = git.irc-announce { nick = config.networking.hostName; channel = "#retiolum"; + # TODO remove the hardcoded hostname server = "cd.retiolum"; }; }; }; - set-owners = with git; repo: user: + set-owners = with git;repo: user: singleton { inherit user; repo = [ repo ]; @@ -52,17 +53,26 @@ let # TODO: get the list of all krebsministers krebsminister = with config.krebs.users; [ lass tv uriel ]; - priv-rules = with config.krebs.users; repo: - set-owners repo [ makefu ]; + #all-makefu = with config.krebs.users; [ makefu ]; - krebs-rules = with config.krebs.users; repo: - set-owners repo [ makefu ] ++ set-ro-access repo krebsminister ; + + all-makefu = with config.krebs.users; [ makefu makefu-omo ]; + + priv-rules = repo: set-owners repo all-makefu; + + krebs-rules = repo: + set-owners repo all-makefu ++ set-ro-access repo krebsminister; in { - imports = [ ../../3modules/krebs/git.nix ]; + imports = [{ + krebs.users.makefu-omo = { + name = "makefu-omo" ; + pubkey= with builtins; readFile ../../Zpubkeys/makefu_omo.ssh.pub; + }; + }]; krebs.git = { enable = true; - root-title = "public repositories "; + root-title = "public repositories"; root-desc = "keep on krebsing"; inherit repos rules; }; -- cgit v1.2.3