Я использую библиотеку LibGit2Sharp для клонирования/передачи репозитория GitHub аутентифицированного пользователя, но LibGit2Sharp не принимает токен доступа для авторизации пользователя.
LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
{
Username = "username",
Password = "password"
};
Итак, у меня есть токен доступа от Octokit.NET, и я хочу использовать этот токен для отправки в репозиторий авторизованных пользователей с помощью LibGit2Sharp.
Есть ли способ сделать этот трюк? Насколько мне известно, Octokit.NET в настоящее время не может выполнять push-запросы.
ОБНОВЛЕНИЕ
Как предлагают Карлос Мартин Ньето и Иван Зузак, я изменил код:
LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
{
Username = "the-access-token",
Password = string.Empty
};
И после того, как я использую свою логику push:
var pushOptions = new PushOptions() { Credentials = credentials};
Remote remote = repo.Network.Remotes["origin"];
LibGit2Sharp.Signature author = new LibGit2Sharp.Signature("name", "email", DateTime.Now);
repo.Network.Push(remote,"HEAD",@"refs/heads/master",pushOptions, author, null);
Эта логика отлично работает с жестко запрограммированным именем пользователя и паролем, но теперь у меня есть исключение в последней строке, которое говорит: «LibGit2Sharp.LibGit2SharpException: Ошибка запроса с кодом состояния: 403».
Я что-то упустил из реализации или ошибся в методе Push()?
Большое спасибо!