Мы работаем над системой автоматической фиксации сгенерированных проектов в Git репозиториях, расположенных в Azure Devops. Мы хотим использовать libgit2sharp для этого. Мы хотим, чтобы пользователь проходил аутентификацию с использованием своей учетной записи Microsoft, извлекал токен доступа (jwt) из запроса на аутентификацию и использовал его в качестве средства аутентификации. Но мы не можем заставить это работать.
В другом посте я прочитал 2 других метода аутентификации: 1. Альтернативные учетные записи. 2. Персональные токены доступа, PAT. Оба сделаны в разделах профиля вашей учетной записи devops.
Я могу заставить альтернативные учетные записи работать отлично, но это не наш предпочтительный маршрут, так как он потребует от пользователя дополнительных действий. PAT, кажется, не работает для меня и выдает ошибку, что было «слишком много перенаправлений или повторов аутентификации». Я подумал, что это из-за двухфакторной аутентификации, которая включена в учетной записи Microsoft.
Поддерживается ли даже использование токена доступа (jwt) в LibGit2Sharp с включенным 2FA?
using (var repo = new Repository({repo location}))
{
foreach (var file in file)
{
repo.Index.Add(file.Path);
repo.Index.Write();
}
var author = new Signature("{name}", "{name}", DateTime.Now);
var committer = author;
repo.Commit("Here's a commit i made!", author, committer);
var options = new PushOptions();
options.CredentialsProvider = (url, user, cred) => new UsernamePasswordCredentials() { Username = "{username}", Password = "{password}" };
repo.Network.Push(repo.Branches["master"], options);
}