Browse Source

credential: load default config

Make `git credential fill` honour the core.askPass variable.

Signed-off-by: Thomas Koutcher <thomas.koutcher@online.fr>
[jk: added test]
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Thomas Koutcher 4 years ago committed by Junio C Hamano
parent
commit
567ad2c0f9
  1. 3
      builtin/credential.c
  2. 26
      t/t0300-credentials.sh

3
builtin/credential.c

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
#include "git-compat-util.h"
#include "credential.h"
#include "builtin.h"
#include "config.h"

static const char usage_msg[] =
"git credential [fill|approve|reject]";
@ -10,6 +11,8 @@ int cmd_credential(int argc, const char **argv, const char *prefix) @@ -10,6 +11,8 @@ int cmd_credential(int argc, const char **argv, const char *prefix)
const char *op;
struct credential c = CREDENTIAL_INIT;

git_config(git_default_config, NULL);

if (argc != 2 || !strcmp(argv[1], "-h"))
usage(usage_msg);
op = argv[1];

26
t/t0300-credentials.sh

@ -265,6 +265,32 @@ test_expect_success 'internal getpass does not ask for known username' ' @@ -265,6 +265,32 @@ test_expect_success 'internal getpass does not ask for known username' '
EOF
'

test_expect_success 'git-credential respects core.askPass' '
write_script alternate-askpass <<-\EOF &&
echo >&2 "alternate askpass invoked"
echo alternate-value
EOF
test_config core.askpass "$PWD/alternate-askpass" &&
(
# unset GIT_ASKPASS set by lib-credential.sh which would
# override our config, but do so in a subshell so that we do
# not interfere with other tests
sane_unset GIT_ASKPASS &&
check fill <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=alternate-value
password=alternate-value
--
alternate askpass invoked
alternate askpass invoked
EOF
)
'

HELPER="!f() {
cat >/dev/null
echo username=foo

Loading…
Cancel
Save