summaryrefslogtreecommitdiffstats
path: root/configs/repo-sync
diff options
context:
space:
mode:
Diffstat (limited to 'configs/repo-sync')
-rw-r--r--configs/repo-sync/wiki.nix39
1 files changed, 39 insertions, 0 deletions
diff --git a/configs/repo-sync/wiki.nix b/configs/repo-sync/wiki.nix
new file mode 100644
index 0000000..94f7e80
--- /dev/null
+++ b/configs/repo-sync/wiki.nix
@@ -0,0 +1,39 @@
+{ config, lib, mylib, pkgs, ... }: {
+ krebs.repo-sync.enable = true;
+ krebs.repo-sync.repos.wiki.branches.hotdog = {
+ origin.url = "http://cgit.hotdog.r/wiki";
+ mirror.url = "git@${config.krebs.build.host.name}.r:wiki";
+ };
+ krebs.git.repos.wiki = {
+ public = true;
+ name = "wiki";
+ cgit.desc = toString [
+ "mirror of"
+ config.krebs.repo-sync.repos.wiki.branches.hotdog.origin.url
+ ];
+ cgit.section = "7. mirrors";
+ hooks.post-receive = /* sh */ ''
+ ${pkgs.git-hooks.irc-announce {
+ channel = "#xxx";
+ nick = config.krebs.build.host.name;
+ server = "irc.r";
+ }}
+ ${pkgs.cgit-clear-cache.override {
+ inherit (config.krebs.git.cgit.settings) cache-root;
+ }}/bin/cgit-clear-cache
+ '';
+ };
+ krebs.git.rules = lib.singleton {
+ user = lib.singleton config.krebs.users.repo-sync;
+ repo = lib.singleton config.krebs.git.repos.wiki;
+ perm = mylib.git.push "refs/*" [
+ mylib.git.create
+ mylib.git.delete
+ mylib.git.merge
+ mylib.git.non-fast-forward
+ ];
+ };
+ krebs.users.${config.krebs.repo-sync.user.name}.pubkey = {
+ ni = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINK9U0Ob9/O0kxg3trhZY/vDnbqfN+R5cASGiClRr4IM";
+ }.${config.krebs.build.host.name};
+}