libgit2 / libgit2sharp

Git + .NET = ❤
http://libgit2.github.com
MIT License
3.16k stars 888 forks source link

LibGit2Sharp.LibGit2SharpException | too many redirects or authentication replays #2117

Open belkhir-aziz opened 1 month ago

belkhir-aziz commented 1 month ago

I am using LibGit2Sharp (version 0.28.0) with a Personal Access Token to access AZURE Repository.

UsernamePasswordCredentials => { Username = "pat", Password = PersonalAccessToken }

CustomHeader => "Authorization: Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($":{PersonalAccessToken}"))}"

Everything was working as expected until last week, when I started encountering exceptions while trying to interact with the remote repository (e.g., clone, pull, push).

Clone failed. | LibGit2Sharp.LibGit2SharpException | too many redirects or authentication replays at LibGit2Sharp.Core.Ensure.HandleError(Int32 result) in //LibGit2Sharp/Core/Ensure.cs:line 154 at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result) in /_/LibGit2Sharp/Core/Ensure.cs:line 172 at LibGit2Sharp.Core.Proxy.gitclone(String url, String workdir, GitCloneOptions& opts) in //LibGit2Sharp/Core/Proxy.cs:line 278 at LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, CloneOptions options) in //LibGit2Sharp/Repository.cs:line 824

ethomson commented 1 month ago

Did you upgrade anything locally (in other words, change the version of LibGit2Sharp) in the last week? If not, something has changed in Azure Repos.

You're using two authentication methods - first, you're setting UsernamePasswordCredentials, second you're adding your own credentials in the CustomHeader. I would imagine that a remote host would be confused about this. What happens if you only use one of these mechanisms?

belkhir-aziz commented 1 month ago

Thank you for your reply. No, I haven't changed the version. It's just that authentication with PAT doesn't work for (push, pull...), I updated the PAT to make sure it's valid. Using DefaultCredentials() does not give any error. Everything was ok previous week.

I still get the issue when using one Mechanism only.