Я пишу приложение, которое позволяет пользователю получать доступ к его / ее файлам, сохраненным на GitHub напрямую, не выходя из программного обеспечения Revit (программное обеспечение для 3D-моделирования).
Я использую Octokit, чтобы иметь возможность использовать функциональные возможности GitHub вмое приложение на C #.
Я создал всплывающее окно WPF и запросил у пользователя аутентификацию.В первой версии приложения я регистрировал пользователя через его имя пользователя, токен GitHub (https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) и имя репозитория.
В этой новой версии я хочу немного улучшить вход в систему, позволяя пользователювойдите через его / ее учетные данные GitHub (адрес электронной почты и пароль), улучшая работу.
Я могу успешно войти в систему:
readonly GitHubClient client = new GitHubClient(new ProductHeaderValue("DynaHub"));
client.Credentials = new Credentials("myaddress@email.com", "myPassword");
, но у меня проблемыв попытке получить все репозитории для пользователя. Я использую этот метод: var repos = await client.Repository.GetAllForUser(string login);
, но он не работает, если вы используете адрес электронной почты для входа. Он работает, только если я использую имя пользователя пользователя ина самом деле он находит все мои публичные репозитории.
Это само по себе немного странно, поскольку и метод Credentials(string login)
, и метод GetAllForUser(string login)
запрашивают ввод string login
, так что вы ожидаете, что электронное письмо, которое вы простоИспользование учетных данных для входа в систему также будет работать для получения репозиториев.
Если это не так, как я могу получить имя пользователя из электронной почты? Конечно, должен быть способ. (пробовал с var users = await client.Search.SearchUsers(new SearchUsersRequest("asd@asd.com"));
как предложено где-то, но он не найдет ни одного пользователя, поэтому безуспешно.)