aboutsummaryrefslogtreecommitdiffstats
path: root/users/hanna/configs/git.nix
blob: 53eaef5ec4391d2997f089028b43027e8eb45a3a (plain) (blame)
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
37
38
39
40
41
42
43
44
45
46
47
{ lib, ... }:

let
  signers = ids: builtins.concatStringsSep "\n"
    (map (id: "${id} ${keys.${id}.type} ${keys.${id}.key}") ids);

  keys = {
    "me@hanna.lol" = {
      key = "AAAAC3NzaC1lZDI1NTE5AAAAIEST6MgqRSn0N9ResAQ6Alt0V02GJF3XWneEDeheuQVI";
      type = "ssh-ed25519";
    };
  };
in {
  xdg.config.files."git/signers".text = signers [
    "me@hanna.lol"
  ];

  xdg.config.files."git/config".text = lib.generators.toGitINI {
    user.name = "hanna";
    user.email = "me@hanna.lol";
    user.signingkey = "~/.ssh/id_ed25519.pub";

    gpg.format = "ssh";
    gpg.ssh.allowedsignersfile = "~/.config/git/signers";
    commit.gpgsign = true;
    tag.gpgsign = true;

    core.autocrlf = false;
    core.repositoryformatversion = 1;
    core.compatobjectformat = "sha1";
    core.objectformat = "sha256";
    core.editor = "hx";

    push.default = "simple";
    push.autosetupremote = true;

    lfs.enabled = true;
    lfs.locksverify = true;

    init.defaultbranch = "main";
    credential.helper = "store";
    submodule.recurse = true;
    rerere.enabled = true;
    fetch.prune = true;
    pull.rebase = true;
  };
}