Как скачивать репозитории из github через PowerShell.
Для загрузки репозиториев необходимо в начале установить git:
https://git-scm.com/downloads/win
Далее если нам известен репозиторий:
git clone https://github.com/"ПОЛЬЗОВАТЕЛЬ"/"РЕПОЗИТОРИЙ".git
Так же можно вывести репозитории списком с помощью скрипта:
try {
# Получаем данные через настроенный в Git помощник авторизации.
# Ответ сохраняется в переменную, чтобы не показывать токен.
$gitCredential = "protocol=https`nhost=github.com`n`n" |
git credential fill
if ($LASTEXITCODE -ne 0) {
throw "Не удалось авторизоваться через Git."
}
$token = ($gitCredential |
Where-Object { $_ -like "password=*" } |
Select-Object -First 1) -replace "^password=", ""
if ([string]::IsNullOrWhiteSpace($token)) {
throw "Git не вернул токен."
}
$headers = @{
Authorization = "Bearer $token"
Accept = "application/vnd.github+json"
"User-Agent" = "PowerShell"
}
$repos = @(
$page = 1
do {
$url = "https://api.github.com/user/repos?per_page=100&page=$page"
$response = Invoke-RestMethod `
-Uri $url -Headers $headers -ErrorAction Stop
$batch = @($response | Where-Object { $_.full_name })
$batch
$page++
} while ($batch.Count -eq 100)
)
$result = @($repos | Where-Object { $_.owner.login -eq "ПОЛЬЗОВАТЕЛЬ" })
Write-Host "Найдено: $($result.Count)"
$result |
Select-Object full_name, private, clone_url |
Format-Table -AutoSize
}
finally {
Remove-Variable gitCredential, token, headers -ErrorAction SilentlyContinue
}
Просмотры: 10