aboutsummaryrefslogtreecommitdiffstats
path: root/modules/development/git
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar@gmail.com>2026-09-24 03:42:34 +0530
committerArpit Chakladar <arpitchakladar@gmail.com>2026-09-24 03:42:34 +0530
commit44b8624d201e70c8418ada5db3c46e9ba130ea30 (patch)
treeab960997bf8831d294dd84838523b358b7012ac5 /modules/development/git
parent30f8fea050f3242f0e6a2072779e706b5c8ceaf1 (diff)
downloadhome-manager-config-44b8624d201e70c8418ada5db3c46e9ba130ea30.tar.gz
home-manager-config-44b8624d201e70c8418ada5db3c46e9ba130ea30.zip
refactor(naming): use kebab-case option names and consistent gopass secret naming
Diffstat (limited to 'modules/development/git')
-rw-r--r--modules/development/git/assertions.nix12
-rw-r--r--modules/development/git/default.nix34
2 files changed, 28 insertions, 18 deletions
diff --git a/modules/development/git/assertions.nix b/modules/development/git/assertions.nix
index c66714a..2baeced 100644
--- a/modules/development/git/assertions.nix
+++ b/modules/development/git/assertions.nix
@@ -3,24 +3,24 @@
{
assertions = [
{
- assertion = !config.development.git.signing.signByDefault || config.development.git.enable;
+ assertion = !config.development.git.signing.sign-by-default || config.development.git.enable;
message = ''
- development.git.signing.signByDefault is enabled but development.git.enable is not.
+ development.git.signing.sign-by-default 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;
+ !config.development.git.signing.sign-by-default || config.development.git.signing.key != null;
message = ''
- development.git.signing.signByDefault is enabled but development.git.signing.key is not set.
+ development.git.signing.sign-by-default 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;
+ assertion = !config.development.git.signing.sign-by-default || config.security.gpg.enable;
message = ''
- development.git.signing.signByDefault is enabled but security.gpg.enable is not.
+ development.git.signing.sign-by-default is enabled but security.gpg.enable is not.
Commit signing requires the managed GPG configuration. Please enable security.gpg.
'';
}
diff --git a/modules/development/git/default.nix b/modules/development/git/default.nix
index 15dcc80..593c8a3 100644
--- a/modules/development/git/default.nix
+++ b/modules/development/git/default.nix
@@ -2,8 +2,12 @@
{
config,
lib,
+ pkgs,
...
}:
+let
+ cfg = config.development.git;
+in
{
imports = [
./assertions.nix
@@ -30,29 +34,35 @@
description = "Git email.";
};
- signing = {
- key = lib.mkOption {
- type = lib.types.nullOr lib.types.str;
- default = null;
- description = "GPG key ID used for signing commits.";
- };
+ signing = lib.mkOption {
+ type = lib.types.submodule {
+ options = {
+ key = lib.mkOption {
+ type = lib.types.nullOr lib.types.str;
+ default = null;
+ description = "GPG key ID used for signing commits.";
+ };
- signByDefault = lib.mkEnableOption "Sign commits by default.";
+ sign-by-default = lib.mkEnableOption "Sign commits by default.";
+ };
+ };
+ default = { };
+ description = "Git commit signing configuration.";
};
};
- config = lib.mkIf config.development.git.enable {
+ config = lib.mkIf cfg.enable {
programs.git = {
enable = true;
signing = {
- key = config.development.git.signing.key;
- signByDefault = config.development.git.signing.signByDefault;
+ key = cfg.signing.key;
+ sign-by-default = cfg.signing.sign-by-default;
};
settings = lib.mkMerge [
{
user = {
- name = config.development.git.username;
- email = config.development.git.email;
+ name = cfg.username;
+ email = cfg.email;
};
core = {
askPass = "";