Merge pull request #81118 from tilpner/gitdaemon-usercreation
nixos/git-daemon: only create git user if it will be used
This commit is contained in:
commit
21c971a732
@ -104,14 +104,14 @@ in
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
users.users = optionalAttrs (cfg.user != "git") {
|
||||
users.users = optionalAttrs (cfg.user == "git") {
|
||||
git = {
|
||||
uid = config.ids.uids.git;
|
||||
description = "Git daemon user";
|
||||
};
|
||||
};
|
||||
|
||||
users.groups = optionalAttrs (cfg.group != "git") {
|
||||
users.groups = optionalAttrs (cfg.group == "git") {
|
||||
git.gid = config.ids.gids.git;
|
||||
};
|
||||
|
||||
|
@ -98,6 +98,7 @@ in
|
||||
fsck = handleTest ./fsck.nix {};
|
||||
gotify-server = handleTest ./gotify-server.nix {};
|
||||
grocy = handleTest ./grocy.nix {};
|
||||
gitdaemon = handleTest ./gitdaemon.nix {};
|
||||
gitea = handleTest ./gitea.nix {};
|
||||
gitlab = handleTest ./gitlab.nix {};
|
||||
gitolite = handleTest ./gitolite.nix {};
|
||||
|
64
nixos/tests/gitdaemon.nix
Normal file
64
nixos/tests/gitdaemon.nix
Normal file
@ -0,0 +1,64 @@
|
||||
import ./make-test-python.nix ({ pkgs, ... }:
|
||||
|
||||
let
|
||||
hashes = pkgs.writeText "hashes" ''
|
||||
b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c /project/bar
|
||||
'';
|
||||
in {
|
||||
name = "gitdaemon";
|
||||
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
maintainers = [ tilpner ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
server =
|
||||
{ config, ... }: {
|
||||
networking.firewall.allowedTCPPorts = [ config.services.gitDaemon.port ];
|
||||
|
||||
environment.systemPackages = [ pkgs.git ];
|
||||
|
||||
services.gitDaemon = {
|
||||
enable = true;
|
||||
basePath = "/git";
|
||||
};
|
||||
};
|
||||
|
||||
client =
|
||||
{ pkgs, ... }: {
|
||||
environment.systemPackages = [ pkgs.git ];
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
with subtest("create project.git"):
|
||||
server.succeed(
|
||||
"mkdir /git",
|
||||
"git init --bare /git/project.git",
|
||||
"touch /git/project.git/git-daemon-export-ok",
|
||||
)
|
||||
|
||||
with subtest("add file to project.git"):
|
||||
server.succeed(
|
||||
"git clone /git/project.git /project",
|
||||
"echo foo > /project/bar",
|
||||
"git config --global user.email 'you@example.com'",
|
||||
"git config --global user.name 'Your Name'",
|
||||
"git -C /project add bar",
|
||||
"git -C /project commit -m 'quux'",
|
||||
"git -C /project push",
|
||||
"rm -r /project",
|
||||
)
|
||||
|
||||
with subtest("git daemon starts"):
|
||||
server.wait_for_unit("git-daemon.service")
|
||||
|
||||
with subtest("client can clone project.git"):
|
||||
client.succeed(
|
||||
"git clone git://server/project.git /project",
|
||||
"sha256sum -c ${hashes}",
|
||||
)
|
||||
'';
|
||||
})
|
Loading…
Reference in New Issue
Block a user