summaryrefslogtreecommitdiff
path: root/credential.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-05-05 21:54:29 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-05-05 21:54:30 (GMT)
commit568324f31ba6cec13532e420117d312db65ddd80 (patch)
tree749064792c8d2f6e22e932c165373839cef17803 /credential.c
parentda05cacd8a4e7c3d6d8c84aa2c1d45684717ac95 (diff)
parentcd93e6c029026cc3da466ddc53927e85b7e7041e (diff)
downloadgit-568324f31ba6cec13532e420117d312db65ddd80.zip
git-568324f31ba6cec13532e420117d312db65ddd80.tar.gz
git-568324f31ba6cec13532e420117d312db65ddd80.tar.bz2
Merge branch 'js/partial-urlmatch'
The same as js/partial-urlmatch-2.17, built on more recent codebase to avoid unnecessary merge conflicts. * js/partial-urlmatch: credential: handle `credential.<partial-URL>.<key>` again credential: optionally allow partial URLs in credential_from_url_gently()
Diffstat (limited to 'credential.c')
-rw-r--r--credential.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/credential.c b/credential.c
index c19322d..d8d226b 100644
--- a/credential.c
+++ b/credential.c
@@ -86,6 +86,22 @@ static int select_all(const struct urlmatch_item *a,
return 0;
}
+static int match_partial_url(const char *url, void *cb)
+{
+ struct credential *c = cb;
+ struct credential want = CREDENTIAL_INIT;
+ int matches = 0;
+
+ if (credential_from_potentially_partial_url(&want, url) < 0)
+ warning(_("skipping credential lookup for key: credential.%s"),
+ url);
+ else
+ matches = credential_match(&want, c);
+ credential_clear(&want);
+
+ return matches;
+}
+
static void credential_apply_config(struct credential *c)
{
char *normalized_url;
@@ -105,6 +121,7 @@ static void credential_apply_config(struct credential *c)
config.collect_fn = credential_config_callback;
config.cascade_fn = NULL;
config.select_fn = select_all;
+ config.fallback_match_fn = match_partial_url;
config.cb = c;
credential_format(c, &url);