Subject: Re: Failing to push to a repository erases authentication helper credentials

From: "brian m. carlson" <[email-masked]>
Date: Mon, 30 Jun 2025 14:31:15 +0000

On 2025-06-30 at 13:45:30, Michal Suchánek wrote:
> I was trying out AGit https://docs.gitea.com/usage/agit with oauth
> helper https://github.com/hickford/git-credential-oauth encountering
> this bug https://github.com/go-gitea/gitea/issues/34583
> 
> When doing so the oauth helper asked for new authentication, then for
> some reason I was asked for authentication by some other helper.
> 
> After that pushing to repository to which I have permissions asked for
> authentication again.
> 
> This hints that any failed git operation erases helper credentials.

This is true and it's by design.

> That does not sound like a desirable behavior.

It is in fact desirable because otherwise the user continues to attempt
to use the bad credentials and then can never again authenticate
successfully, since they are never again prompted for credentials.

> Could the previous credentials be preserved?

Git doesn't have a behaviour to do so, but you could of course craft a
custom credential helper that just rejects the erase command and passes
everything else through to another helper.  That would achieve your
goal.
-- 
brian m. carlson (they/them)
Toronto, Ontario, CA