Browse Source

credential: convert "url" attribute into its parsed subparts

The git-credential command requires that you feed it a
broken-down credential, which means that the client needs to
parse a URL itself. Since we have our own URL-parsing
routines, we can easily allow the caller to just give us the
URL as-is, saving them some code.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff King 13 years ago committed by Junio C Hamano
parent
commit
9c183a7072
  1. 12
      Documentation/git-credential.txt
  2. 2
      credential.c

12
Documentation/git-credential.txt

@ -140,3 +140,15 @@ Git understands the following attributes:
`password`:: `password`::


The credential's password, if we are asking it to be stored. The credential's password, if we are asking it to be stored.

`url`::

When this special attribute is read by `git credential`, the
value is parsed as a URL and treated as if its constituent parts
were read (e.g., `url=https://example.com` would behave as if
`protocol=https` and `host=example.com` had been provided). This
can help callers avoid parsing URLs themselves. Note that any
components which are missing from the URL (e.g., there is no
username in the example above) will be set to empty; if you want
to provide a URL and override some attributes, provide the URL
attribute first, followed by any overrides.

2
credential.c

@ -172,6 +172,8 @@ int credential_read(struct credential *c, FILE *fp)
} else if (!strcmp(key, "path")) { } else if (!strcmp(key, "path")) {
free(c->path); free(c->path);
c->path = xstrdup(value); c->path = xstrdup(value);
} else if (!strcmp(key, "url")) {
credential_from_url(c, value);
} }
/* /*
* Ignore other lines; we don't know what they mean, but * Ignore other lines; we don't know what they mean, but

Loading…
Cancel
Save