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

Re: Preserving credentials on authentication failures

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Sep 21, 2022, 21:13 UTC
Message-ID
<Yyt+bAllVYJ9+SXa@tapette.crustytoothpaste.net>
In-Reply-To
<007401d8ccc6$ef8ebe50$ceac3af0$@email.cz>
On 2022-09-20 at 07:59:38, Jan Tosovsky wrote:
Show 9 quoted lines
> On my local Windows machine I maintain a credential store in the form of a
> text file. But from time to time one of the entries disappears. I run
> regularly some background jobs, cloning some stuff, and I suspect this
> happens when the external authentication service is down temporarily. When
> it is later resumed, I can't clone the repo anymore because of that deleted
> entry.
> 
> Is there any option to keep entries on authentication failures? Or is this
> simply a bug? Or is there another reason why this happens?

If you have a credential helper and the credentials retrieved from it cause the server to send a 401, then Git will erase the credentials and ask for new ones. If your auth service is down, then the best thing for your Git server to do is return a 503 if service cannot be maintained. If it returns a 401 (which is not correct according to the RFC), then Git will clear the credentials.

Git doesn't provide an option to preserve entries on authentication failure, but you could write a simple shell script that wraps your normal credential helper and ignores the "erase" command and use that instead in `credential.helper`.

-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA
Previous: Jan Tosovsky
Message 2 of 2 in “Preserving credentials on authentication failures”
  1. Jan TosovskySep 20, 2022
  2. brian m. carlsonSep 21, 2022

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.