]> git.ipfire.org Git - thirdparty/git.git/commit - config.c
config: add new way to pass config via `--config-env`
authorPatrick Steinhardt <ps@pks.im>
Tue, 12 Jan 2021 12:26:45 +0000 (13:26 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 12 Jan 2021 20:03:18 +0000 (12:03 -0800)
commitce81b1da230cf04e231ce337c2946c0671ffb303
tree1da56ff0ae9cd73277adc220bad64122482fc69c
parentb0812b6ac0776b6e43e8483d5579ffd11d5c5f42
config: add new way to pass config via `--config-env`

While it's already possible to pass runtime configuration via `git -c
<key>=<value>`, it may be undesirable to use when the value contains
sensitive information. E.g. if one wants to set `http.extraHeader` to
contain an authentication token, doing so via `-c` would trivially leak
those credentials via e.g. ps(1), which typically also shows command
arguments.

To enable this usecase without leaking credentials, this commit
introduces a new switch `--config-env=<key>=<envvar>`. Instead of
directly passing a value for the given key, it instead allows the user
to specify the name of an environment variable. The value of that
variable will then be used as value of the key.

Co-authored-by: Jeff King <peff@peff.net>
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git.txt
config.c
config.h
git.c
t/t1300-config.sh