50 Commits

Author SHA1 Message Date
Cédric Prezelin
693e8ce0fb git: add allowedSigners option 2026-09-03 21:09:37 -05:00
K900
0668fdbc15 treewide: stdenv.is* -> stdenv.hostPlatform.is*
Nixpkgs officialy deprecated the former.
2026-08-13 08:40:58 +02:00
Austin Horstman
165228b0ef launchd: restore gui domain defaults
User-domain agents are not rediscovered from the user LaunchAgents directory after reboot. Let built-in agents inherit the GUI default while keeping explicit user-domain configuration available.
2026-07-15 10:29:26 -05:00
Austin Horstman
2f3da3d45f launchd: fix user domain agents
User-domain agents need the Background session type to bootstrap into user/501, and activation should fail rather than silently unloading services when launchctl bootstrap fails.
2026-06-30 23:39:07 -05:00
John Lewis
866412a198 git: use absolute paths for git-lfs in config
This allows the git config to be used by programs that have git
installed natively and where other programs access git but don't have
the nix path available, so cannot access git-lfs.
2026-05-18 21:21:03 -05:00
Austin Horstman
a89686d115 git: avoid implicit signing config
Fixes #6630
2026-05-04 11:53:44 -05:00
Austin Horstman
30db803c98 git: support ordered settings fragments
Allow programs.git.settings to keep its existing attrset shorthand while also accepting an ordered list of fragments for repeated sections and order-sensitive config. Cover the new list form with a focused Git config snapshot test.
2026-04-23 12:13:58 -05:00
Austin Horstman
b92cad188c git: warn on signing format default change
The default value for programs.git.signing.format changed in 25.05
from an implicit "openpgp" to null. Keep the existing gated
mkOptionDefault behavior so the signing block only materializes when
other signing settings are in use, but route the versioned value and
static docs text through the shared state-version helper.

Add a focused current-state-version test that covers a non-empty
signing configuration with no explicit format, alongside the existing
legacy implicit-openpgp and explicit-format tests.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Léana 江
cfb3b544f9 programs.git: test git integration options assertion 2026-02-04 21:43:38 -06:00
Wael Nasreddine
eec72f1278 launchd: wait for /nix/store before starting agent (#8609)
On Darwin, launchd may attempt to start agents before the Nix store is
mounted and available. This leads to failures when the agent's executable
or arguments reside in the Nix store.

This change wraps the agent's command in a shell script that uses
/bin/wait4path to ensure /nix/store is ready before executing the
original program. It also ensures that ProgramArguments are correctly
escaped and concatenated.
2026-01-27 21:51:48 -08:00
Austin Horstman
aeabc1ac63 tests/git: add settigs deprecation test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman
a709427248 git: aliases / user options -> settings
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman
ac7c05a90c git: extraConfig -> settings
Remove string support and convert to rfc42 settings option

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman
c80be80282 patdiff: new module
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman
4fef8e73a6 tests/git: add git-lfs test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman
111329b475 difftastic: new module
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman
f436677f5f delta: create new module
Pull out of git module and deprecate old usage.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Bruno BELANYI
929535c308 git: difftastic: use 'option' attrset
This will avoid having to enumerate and hard-code default values.
2025-10-06 09:41:50 -05:00
Brian Lyles
7d3d323e90 git: add extraArgs option for difftastic
This option will cover any other arguments that aren't made available
with dedicated options.
2025-10-06 08:06:53 -05:00
Brian Lyles
1652349e57 git: add option for difftastic context
The ability to control the number of contextual lines is a basic
expectation of a diff program, so a dedicated option feels warranted.
2025-10-06 08:06:53 -05:00
Brian Lyles
d328666dba git: add tests for difftastic 2025-10-06 08:06:53 -05:00
Plume
2ede089d11 git: configure patdiff through [patdiff] git section (#6978)
This adds the ability to enable the patdiff program as git differ.
Website of the project: https://opensource.janestreet.com/patdiff/
2025-05-08 08:15:51 -05:00
K900
abfad3d295 treewide: substituteAll -> replaceVars/substitute
substituteAll is now officially deprecated.
2025-04-24 13:40:11 +02:00
Josh Heinrichs
42d90297b3 git: support maintenance on darwin (#6868) 2025-04-21 14:25:57 -07:00
Austin Horstman
cba2f9ce95 treewide: reformat nixfmt-rfc-style
Reformat repository using new nixfmt-rfc-style.
2025-04-08 08:50:05 -07:00
Vonfry
6f71acf71b git: apply sendmailCmd instead of smtpServer (#6399)
In manpage of git-send-email --smtp-server,

    For backward compatibility, this option can also specify
    full pathname of a sendmail-like program instead; the program
    must support the -i option. This method does not support
    passing arguments or using plain command names. For those use
    cases, consider using --sendmail-cmd instead.
2025-03-04 22:46:31 +01:00
Austin Horstman
5c5697b82a git: support not configuring signing.format (#6478) 2025-02-17 03:00:03 -08:00
Sizhe Zhao
7da01bc47a git: support alternate signing methods (#5516)
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>
2025-02-14 11:47:27 -07:00
Robert Helgesson
7a3f0b3b8d tests: rework derivation stubbing
Instead of having to manually stub packages that should not be
downloaded we instead automatically stub all packages (except a small
list of whitelisted ones). Tests can re-introduce the real package by
using the `realPkgs` module argument.
2025-02-04 23:58:20 +01:00
Léo DUBOIN
2b87a11125 git: add realName inside From field
We currently have no way of specifying the sender's name inside the
From field, making a patch sent through `git send-email` appear as
coming from "xxx@domain.com".

In this commit we make this field follow the standard

    realName <email>

format.
2024-05-06 08:17:53 +02:00
Charlie Moog
340ec22f6f git: add config helper for hooks 2022-09-08 11:05:07 +02:00
Lily Foster
140aaed3df git: gpg sign tags with signing.signByDefault set
The `tag.gpgSign` config option was added in Git 2.23.0 and seems like
it should be set in addition to `commit.gpgSign` when
`programs.git.signing.signByDefault` is enabled
2022-09-05 14:52:39 +02:00
Ronny Pfannschmidt
5bb1f67568 git: add option to define store names for generated include files (#3171)
This allows to use gitconfig/gitconfig-some-intent
as store path suffixes for the texts.
2022-08-26 15:48:50 -04:00
Robert Helgesson
78afc2fa74 git: stub test dependency on msmtp 2021-10-30 20:36:18 +02:00
Robert Helgesson
cb09a968e9 tests: add option test.stubs
This option provides a more convenient way to overlay dummy packages.
It also adds a function `config.lib.test.mkStubPackage` that can,
e.g., be used for `package` options.
2021-09-26 23:26:38 +02:00
Viacheslav Lotsmanov
cc60c22c69 programs.git: make signing key id be optional (#1886)
* Git: Make signing key id be optional

Thus by default the signing key is selected by commit’s author.

* Git: Add tests for config with and without signing key id
* Git: Format tests for signing key
* Git: Remove default value (null) for signing key
* Git: Update description for signing key
2021-04-05 14:28:36 +02:00
Andrew Fontaine
39e4991856 git: Add configured SSL certificate for SMTP (#1833)
If you have a custom SSL certificate configured for SMTP TLS, git should
use it.
2021-03-03 21:24:19 -05:00
Andrew Fontaine
f45c7000d5 git: correct value of envelopeSender for msmtp (#1838)
The value should be "auto", not `true`.

Also fix news entry.
2021-02-28 20:42:44 +01:00
Andrew Fontaine
aa479b0124 git: rely on msmtp for smtp if msmtp is enabled (#1829)
If a user using msmtp to send all their email, it would be preferred if
git used it as well.

The only settings necessary are to set the smtp server to the msmtp
binary and set envelop sender to true, which makes git call msmtp with
the -f flag to set the from address from the email.
2021-02-28 16:06:11 +01:00
Robert Helgesson
8f24ed4c7f git: fix attribute paths
This fixes some attribute paths to match recent changes in Nixpkgs.
2021-01-20 18:58:35 +01:00
Robert Helgesson
9d53afb709 tests: add support for asserting warnings
This adds a "test.asserts" module that currently just provides a
convenient way to assert on the content of warnings. By default all
tests will assert that no warnings are given.
2020-12-30 17:25:48 +01:00
Robert Helgesson
b3fdbfdf42 git: use gitMinimal in test 2020-11-14 23:18:07 +01:00
Robert Helgesson
57518cd0bf git: remove test dependencies on delta and git-lfs 2020-10-11 22:36:26 +02:00
Andrew Fontaine
baea46c5ac git: set SSL if useStartTls is false
The git-send-email [0] script uses StartTLS if `smtpEncryption` is set
to `tls`, which can break services that don't support StartTLS.

[0]: bd42bbe1a4/git-send-email.perl (L1533)

PR #1395
2020-08-13 21:36:31 +02:00
Mario Rodas
4bd0ca2cd7 git: configure delta through [delta] git section (#1371)
this breaks backwards compatibility (now accepts a dict instead of a list) so please update
programs.git.delta.options accordingly.
2020-07-20 17:03:40 +02:00
Mario Rodas
cba7b6ee6e git: add basic support for delta
PR #1198
2020-05-05 00:12:58 +02:00
Robert Helgesson
642d9ffe24 git: escape string values in configuration
This should handle the special characters that typically occur.

Fixes #1206
2020-05-01 00:50:58 +02:00
zimbatm
9a1feb5b10 git: fix the config output formatting
When setting values using the `git config --set` command, git formats
the file a bit differently. This changes the output so it maps to that
format.

Differences:

* each `key = value` in a section is prefixed by a tab character
* the `=` between the key and the value is surrounded by spaces

PR #1069
2020-03-07 12:02:20 +01:00
Robert Helgesson
45abf3d38a Apply nixfmt on many files 2020-02-02 01:07:28 +01:00
Robert Helgesson
bcfc52cb85 tests: move git and files tests to directories 2019-12-08 21:40:22 +01:00