mirror of
https://github.com/nix-community/home-manager.git
synced 2025-03-09 10:16:55 +00:00
The Git module now supports SSH and X.509 signing in addition to OpenPGP/GnuPG, via setting the `programs.git.signing.format` option. It defaults to `openpgp` for now as a backwards compatibility measure, but I feel like we shouldn't enforce GPG as the default on everyone, especially for people who use SSH signing like me. Accordingly, `programs.git.signing.gpgPath` has been renamed to `programs.git.signing.signer`, as now the signer binary is not restricted to GnuPG. Users should only get a warning and everything should continue to work. Fixes #4221, supersedes #4235 Co-authored-by: Mario Rodas <marsam@users.noreply.github.com> Co-authored-by: Sumner Evans <me@sumnerevans.com> Co-authored-by: Leah Amelia Chen <hi@pluie.me>
37 lines
1.1 KiB
Nix
37 lines
1.1 KiB
Nix
{ pkgs, realPkgs, ... }:
|
|
|
|
{
|
|
imports = [ ../../accounts/email-test-accounts.nix ];
|
|
|
|
accounts.email.accounts."hm@example.com".msmtp.enable = true;
|
|
|
|
programs.git = {
|
|
enable = true;
|
|
signing.signer = "path-to-gpg";
|
|
userEmail = "hm@example.com";
|
|
userName = "H. M. Test";
|
|
};
|
|
|
|
home.stateVersion = "20.09";
|
|
|
|
nmt.script = ''
|
|
function assertGitConfig() {
|
|
local value
|
|
value=$(${realPkgs.gitMinimal}/bin/git config \
|
|
--file $TESTED/home-files/.config/git/config \
|
|
--get $1)
|
|
if [[ $value != $2 ]]; then
|
|
fail "Expected option '$1' to have value '$2' but it was '$value'"
|
|
fi
|
|
}
|
|
|
|
assertFileExists home-files/.config/git/config
|
|
assertFileContent home-files/.config/git/config \
|
|
${./git-with-msmtp-expected.conf}
|
|
|
|
assertGitConfig "sendemail.hm@example.com.from" "H. M. Test <hm@example.com>"
|
|
assertGitConfig "sendemail.hm-account.from" "H. M. Test Jr. <hm@example.org>"
|
|
assertGitConfig "sendemail.hm@example.com.smtpServer" "${pkgs.msmtp}/bin/msmtp"
|
|
assertGitConfig "sendemail.hm@example.com.envelopeSender" "auto"
|
|
'';
|
|
}
|