xin/configs/git.nix

75 lines
1.9 KiB
Nix

{config, ...}: let
rewriteGitHub =
if config.networking.hostName != "stan"
then {
url = {"ssh://git@github.com/" = {insteadOf = "https://github.com/";};};
}
else {
url = {};
};
in {
programs.git = {
enable = true;
lfs.enable = true;
config = [
{init = {defaultBranch = "main";};}
{advice.detachedHead = false;}
{
user = {
name = "Aaron Bieber";
email = "aaron@bolddaemon.com";
signingKey = "key::sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIB1cBO17AFcS2NtIT+rIxR2Fhdu3HD4de4+IsFyKKuGQAAAACnNzaDpsZXNzZXI=";
};
}
{branch = {sort = "-committerdate";};}
{
alias = {
log = "log --color=never";
diff = "diff --color=always";
pr = ''"!f() { git fetch-pr upstream $1; git checkout pr/$1; }; f"'';
fetch-pr = ''
"!f() { git fetch $1 refs/pull/$2/head:refs/remotes/pr/$2; }; f"'';
};
}
{push = {default = "current";};}
{gpg = {format = "ssh";};}
{commit = {gpgsign = true;};}
{
color = {
branch = false;
interactive = false;
log = false;
status = false;
ui = false;
};
}
{safe = {directory = "/home/qbit/src/nix-conf";};}
{transfer = {fsckobjects = true;};}
{fetch = {fsckobjects = true;};}
{github = {user = "qbit";};}
{inherit (rewriteGitHub) url;}
{
sendmail = {
smtpserver = "mail.messagingengine.com";
smtpuser = "qbit@fastmail.com";
smtpauth = "PLAIN";
smtpencryption = "tls";
smtpserverport = 587;
cc = "aaron@bolddaemon.com";
confirm = "auto";
};
}
{pull = {rebase = false;};}
{include = {path = "~/work/git/gitconfig";};}
];
};
}