aboutsummaryrefslogtreecommitdiffstats
path: root/modules/development/git/assertions.nix
blob: c18c8477411250d3800223967589a0f61113ccf1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Assertions - Validates SSH is enabled when git.useSSH is set
{ config, ... }:
{
  assertions = [
    {
      assertion =
        !config.development.git.useSSH || (config.development.git.enable && config.security.ssh.enable);
      message = ''
        development.git.useSSH is enabled but security.ssh.enable is not.
        SSH must be enabled (security.ssh.enable = true) to use SSH for git.
      '';
    }
    {
      assertion = !config.development.git.signing.signByDefault || config.development.git.enable;
      message = ''
        development.git.signing.signByDefault is enabled but development.git.enable is not.
        Enable development.git before enabling commit signing.
      '';
    }
    {
      assertion =
        !config.development.git.signing.signByDefault || config.development.git.signing.key != null;
      message = ''
        development.git.signing.signByDefault is enabled but development.git.signing.key is not set.
        Set a GPG key ID before enabling commit signing by default.
      '';
    }
    {
      assertion = !config.development.git.signing.signByDefault || config.security.gpg.enable;
      message = ''
        development.git.signing.signByDefault is enabled but security.gpg.enable is not.
        Commit signing requires the managed GPG configuration. Please enable security.gpg.
      '';
    }
  ];
}