Клон Github с токеном доступа oauth
Внутри скрипта я пытаюсь клонировать репозиторий Github с маркером oauth.
Согласно этому уроку:
https://github.com/blog/1270-easier-builds-and-deployments-using-git-over-https-and-oauth
Я должен быть в состоянии построить команду для этого так:
git clone https://<token>@github.com/owner/repo.git
Если я попытаюсь сделать это вручную с правильным токеном доступа, он все равно запросит мой пароль.
Если я пробую это в командной строке, я просто получаю ошибку repository not found
.
Статья написана в 2012 году, и я не могу найти документацию по API для этого. Поэтому мне интересно, если это все еще работает.
Ответы
Ответ 1
Я оказался проблемой с объемом. Мне, конечно, нужна полная область repo
, так как я пытался клонировать репозиторий private
.
Это позор. Github не имеет более ясных сообщений об ошибках для такого рода вещей, но, насколько я понимаю, я понимаю, почему.
Для тех, кто пытается выяснить, что не так, когда вы пытаетесь что-то вроде этого, я предлагаю создать токен доступа с полным доступом ко всему:
настройки > параметры разработчикa > токены доступa > генерировать новый токен
Таким образом, вы можете легко проверить, является ли это проблемой области, сравнивая токен с токеном доступа, который имеет права доступа для всего.
Спасибо всем, кто еще нашел время, чтобы прочитать это.
Ответ 2
Делайте все, что работает для вас из этих двух вариантов
В вашем терминале
$ git clone your_repo_url Username:your_token Password:
... нет пароля
В вашем клиентском приложении git
то есть Sourcetree, GitKraken и клиент GitHub.
Введите ваш repo_url (очевидно, без '$ git clone part')
Username:your_token Password:
... нет пароля
ИЛИ, то есть в Sourcetree, откройте настройки, а затем перейдите в раздел "Дополнительно", введите имя хоста (например, www.x.com) и имя пользователя (то есть your_token).
![enter image description here]()
👍
Ответ 3
В ядре .net вы можете сделать это при работе с репо Azure DevOps:
public void CloneRepository()
{
var _gitURL = "URLofGitRemoteRepository";
var _userName = "PersonalAccessToken";
var _pswd = ""; //Keep it blank
var co = new CloneOptions();
co.CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials { Username = _userName, Password = _pswd };
Repository.Clone(_gitURL, filePath, co);
}