Аутентифицируйтесь с помощью Octokit.net и отправьте с помощью LibGit2Sharp в репозиторий GitHub.

Я использую библиотеку 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()?

Большое спасибо!


person Gábor Domonkos    schedule 03.07.2014    source источник
comment
Попробуйте указать свой токен в качестве имени пользователя и пустой пароль: help.github.com/articles/   -  person Ivan Zuzak    schedule 03.07.2014


Ответы (1)


libgit2sharp поддерживает использование токенов аутентификации с GitHub так же, как это делает git. Вы передаете токен в качестве имени пользователя и оставляете пароль пустым.

git не поддерживает токены аутентификации, а просто использует HTTP Basic Auth, поэтому GitHub реализовал это, приняв токен в качестве имени пользователя. Просто используйте его так же, как в командной строке.

person Carlos Martín Nieto    schedule 03.07.2014
comment
Я изменил учетные данные, но у меня ошибка 403 :( - person Gábor Domonkos; 04.07.2014
comment
Вы убедились, что токен разрешен для отправки? Работает ли он с git из командной строки? - person Carlos Martín Nieto; 04.07.2014
comment
Вы правы, я должен использовать область репозитория, чтобы отправить пользовательский репозиторий. Спасибо! :) - person Gábor Domonkos; 04.07.2014