krebs: merge cgit-mirror into repo-sync

This commit is contained in:
lassulus 2017-07-22 15:12:06 +02:00
parent 657e099f4a
commit b4ad7cd86d
3 changed files with 65 additions and 71 deletions

View File

@ -11,7 +11,6 @@ in
<stockholm/krebs/2configs/central-stats-client.nix>
<stockholm/krebs/2configs/save-diskspace.nix>
<stockholm/krebs/2configs/cgit-mirror.nix>
<stockholm/krebs/2configs/graphite.nix>
<stockholm/krebs/2configs/repo-sync.nix>
<stockholm/krebs/2configs/shared-buildbot.nix>

View File

@ -1,45 +0,0 @@
{ config, lib, pkgs, ... }:
with import <stockholm/lib>;
let
rules = with git; singleton {
user = [ wolf-repo-sync ];
repo = [ stockholm-mirror ];
perm = push ''refs/*'' [ non-fast-forward create delete merge ];
};
stockholm-mirror = {
public = true;
name = "stockholm-mirror";
cgit.desc = "mirror for all stockholm branches";
hooks = {
post-receive = pkgs.git-hooks.irc-announce {
nick = config.networking.hostName;
verbose = false;
channel = "#retiolum";
server = "ni.r";
};
};
};
wolf-repo-sync = {
name = "wolf-repo-sync";
mail = "spam@krebsco.de";
# TODO put git-sync pubkey somewhere more appropriate
pubkey = ''ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwuAZB3wtAvBJFYh+gWdyGaZU4mtqM2dFXmh2rORlbXeh02msu1uv07ck1VKkQ4LgvCBcBsAOeVa1NTz99eLqutwgcqMCytvRNUCibcoEWwHObsK53KhDJj+zotwlFhnPPeK9+EpOP4ngh/tprJikttos5BwBwe2K+lfiid3fmVPZcTTYa77nCwijimMvWEx6CEjq1wiXMUc4+qcEn8Swbwomz/EEQdNE2hgoC3iMW9RqduTFdIJWnjVi0KaxenX9CvQRGbVK5SSu2gwzN59D/okQOCP6+p1gL5r3QRHSLSSRiEHctVQTkpKOifrtLZGSr5zArEmLd/cOVyssHQPCX repo-sync@wolf'';
};
in {
krebs.users.wolf-repo-sync = wolf-repo-sync;
krebs.git = {
enable = true;
cgit = {
settings = {
root-title = "Shared Repos";
root-desc = "keep on krebsing";
};
};
inherit rules;
repos.stockholm-mirror = stockholm-mirror;
};
}

View File

@ -1,31 +1,71 @@
{ config, lib, pkgs, ... }:
with lib;
{
krebs.repo-sync = let
# TODO addMirrorURL function
mirror = "git@wolf:stockholm-mirror";
in {
enable = true;
repos.stockholm = {
branches = {
makefu = {
origin.url = http://cgit.gum/stockholm ;
mirror.url = mirror;
with import <stockholm/lib>;
let
mirror = "git@${config.networking.hostName}:";
defineRepo = name: announce: let
repo = {
public = true;
name = mkDefault "${name}";
cgit.desc = mkDefault "mirror for ${name}";
cgit.section = mkDefault "mirror";
hooks = mkIf announce (mkDefault {
post-receive = pkgs.git-hooks.irc-announce {
nick = config.networking.hostName;
verbose = false;
channel = "#retiolum";
server = "ni.r";
branches = [ "newest" ];
};
tv = {
origin.url = http://cgit.ni.r/stockholm;
mirror.url = mirror;
};
lassulus = {
origin.url = http://cgit.prism/stockholm ;
mirror.url = mirror;
};
};
latest = {
url = mirror;
ref = "heads/master";
};
});
};
in {
rules = with git; singleton {
user = with config.krebs.users; [
config.krebs.users."${config.networking.hostName}-repo-sync"
];
repo = [ repo ];
perm = push ''refs/*'' [ non-fast-forward create delete merge ];
};
repos."${name}" = repo;
};
sync-retiolum = name:
{
krebs.repo-sync.repos.${name} = {
branches = {
makefu = {
origin.url = "http://cgit.gum/${name}";
mirror.url = "${mirror}${name}";
};
tv = {
origin.url = "http://cgit.ni.r/${name}";
mirror.url = "${mirror}${name}";
};
nin = {
origin.url = "http://cgit.onondaga.r/${name}";
mirror.url = "${mirror}${name}";
};
lassulus = {
origin.url = "http://cgit.lassul.us/${name}";
mirror.url = "${mirror}${name}";
};
};
latest = {
url = "${mirror}${name}";
ref = "heads/newest";
};
};
krebs.git = defineRepo name true;
};
in {
krebs.repo-sync = {
enable = true;
};
imports = [
(sync-retiolum "stockholm")
];
}