git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 10/14] http: use hostname in credential description

From
Jeff King <peff@peff.net>
Date
Jul 22, 2011, 20:47 UTC
Message-ID
<20110722204749.GC11922@sigill.intra.peff.net>
In-Reply-To
<7vr55k4mxn.fsf@alter.siamese.dyndns.org>
On Wed, Jul 20, 2011 at 03:17:08PM -0700, Junio C Hamano wrote:
Show 12 quoted lines
> Jeff King <peff@peff.net> writes:
> 
> > @@ -342,11 +341,11 @@ static void http_auth_init(const char *url)
> >  		host = at + 1;
> >  	}
> >  
> > +	http_auth.description = url_decode_mem(host, slash - host);
> 
> Could a hosting site like github host multiple repositories, each of which
> the user may interact with under different identity?  Just wondering if it
> is sufficient to say "http://example.com/" or it needs to be more
> specific, e.g. "http://example.com/p/project.git/".

Yes, it's entirely possible. This is a policy decision I had to make (which I really tried to avoid in this series, but at some point, you have to make some if you don't want a million config options).

It means that you can get convenient credential handling (whether it's because you've configured a username, or you're getting it from a wallet, or caching, or whatever) with:

  git push https://github.com/peff/git.git &&
  git push https://github.com/peff/foo.git

which should hopefully just prompt you once (and a configured username would have to be configured only once for the host).

And it comes at the cost that there's not a good way to use two different identities for the same host.

I tried to optimize for the common case (many repos under one identity) than the uncommon (many identities under one host). But I do wish there were a better way to say "No, I want to be more specific". In the current code, it would probably mean adding a config option to put the repo path into the unique token.

If we go in the direction of dumping a list of key/value attributes to the credential helper, then it becomes up to the helper to make that policy decision. Which is extremely flexible (e.g., you could use the same identity for all repos on host1, but per-repo identities on host2). But configuring it becomes a matter of actually writing your own helper, which is not something most people would (or should have to) do.

-Peff
Previous: Junio C HamanoNext: Junio C Hamano
Message 20 of 33 in “less annoying http authentication”
  1. 0/14 less annoying http authenticationJeff King, Jul 18, 2011
  2. 01/14 parse-options: add OPT_STRING_LIST helperJeff King, Jul 18, 2011
  3. 02/14 url: decode buffers that are not NUL-terminatedJeff King, Jul 18, 2011
  4. Junio C HamanoJul 20, 2011
  5. 03/14 improve httpd auth testsJeff King, Jul 18, 2011
  6. 04/14 remote-curl: don't retry auth failures with dumb protocolJeff King, Jul 18, 2011
  7. 05/14 http: retry authentication failures for all http requestsJeff King, Jul 18, 2011
  8. 06/14 introduce credentials APIJeff King, Jul 18, 2011
  9. Junio C HamanoJul 20, 2011
  10. Jeff KingJul 22, 2011
  11. Junio C HamanoJul 22, 2011
  12. Jeff KingJul 22, 2011
  13. Junio C HamanoJul 21, 2011
  14. Jeff KingJul 22, 2011
  15. 07/14 http: use credential API to get passwordsJeff King, Jul 18, 2011
  16. 08/14 look for credentials in config before promptingJeff King, Jul 18, 2011
  17. 09/14 allow the user to configure credential helpersJeff King, Jul 18, 2011
  18. 10/14 http: use hostname in credential descriptionJeff King, Jul 18, 2011
  19. Junio C HamanoJul 20, 2011
  20. Jeff KingJul 22, 2011
  21. Junio C HamanoJul 22, 2011
  22. Jeff KingJul 22, 2011
  23. Ted ZlatanovAug 8, 2011
  24. Junio C HamanoAug 8, 2011
  25. Ted ZlatanovAug 19, 2011
  26. Jeff KingAug 25, 2011
  27. Ted ZlatanovAug 26, 2011
  28. 11/14 docs: end-user documentation for the credential subsystemJeff King, Jul 18, 2011
  29. Junio C HamanoJul 20, 2011
  30. 12/14 credentials: add "cache" helperJeff King, Jul 18, 2011
  31. 13/14 credentials: add "store" helperJeff King, Jul 18, 2011
  32. 14/14 credentials: add "getpass" helperJeff King, Jul 18, 2011
  33. Jeff KingJul 18, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.