Merge branch 'jk/credential-clear-config'
The credential.helper configuration variable is cumulative and there is no good way to override it from the command line. As a special case, giving an empty string as its value now serves as the signal to clear the values specified in various files. * jk/credential-clear-config: credential: let empty credential specs reset helper list
This commit is contained in:
commit
1b68962b29
@ -1113,8 +1113,9 @@ commit.template::
|
||||
credential.helper::
|
||||
Specify an external helper to be called when a username or
|
||||
password credential is needed; the helper may consult external
|
||||
storage to avoid prompting the user for the credentials. See
|
||||
linkgit:gitcredentials[7] for details.
|
||||
storage to avoid prompting the user for the credentials. Note
|
||||
that multiple helpers may be defined. See linkgit:gitcredentials[7]
|
||||
for details.
|
||||
|
||||
credential.useHttpPath::
|
||||
When acquiring credentials, consider the "path" component of an http
|
||||
|
@ -106,6 +106,11 @@ variable, each helper will be tried in turn, and may provide a username,
|
||||
password, or nothing. Once Git has acquired both a username and a
|
||||
password, no more helpers will be tried.
|
||||
|
||||
If `credential.helper` is configured to the empty string, this resets
|
||||
the helper list to empty (so you may override a helper set by a
|
||||
lower-priority config file by configuring the empty-string helper,
|
||||
followed by whatever set of helpers you would like).
|
||||
|
||||
|
||||
CREDENTIAL CONTEXTS
|
||||
-------------------
|
||||
|
@ -63,9 +63,12 @@ static int credential_config_callback(const char *var, const char *value,
|
||||
key = dot + 1;
|
||||
}
|
||||
|
||||
if (!strcmp(key, "helper"))
|
||||
string_list_append(&c->helpers, value);
|
||||
else if (!strcmp(key, "username")) {
|
||||
if (!strcmp(key, "helper")) {
|
||||
if (*value)
|
||||
string_list_append(&c->helpers, value);
|
||||
else
|
||||
string_list_clear(&c->helpers, 0);
|
||||
} else if (!strcmp(key, "username")) {
|
||||
if (!c->username)
|
||||
c->username = xstrdup(value);
|
||||
}
|
||||
|
@ -298,4 +298,15 @@ test_expect_success 'helpers can abort the process' '
|
||||
test_cmp expect stdout
|
||||
'
|
||||
|
||||
test_expect_success 'empty helper spec resets helper list' '
|
||||
test_config credential.helper "verbatim file file" &&
|
||||
check fill "" "verbatim cmdline cmdline" <<-\EOF
|
||||
--
|
||||
username=cmdline
|
||||
password=cmdline
|
||||
--
|
||||
verbatim: get
|
||||
EOF
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user