1
我正在關注GitHub Releases的文檔,但我所得到的全部是資產內容。如何使用Powershell獲取Github發行資產的二進制版本?
這裏是我的PowerShell腳本:
$gitHubRepository = "<repo>"
$gitHubUsername = "<username>"
$gitHubApiKey = "<apikey>"
# Locate Latest GitHub Release
$releaseParams = @{
Uri = "https://api.github.com/repos/$gitHubUsername/$gitHubRepository/releases";
Method = 'GET';
Headers = @{
Authorization = 'Basic ' + [Convert]::ToBase64String(
[Text.Encoding]::ASCII.GetBytes($gitHubApiKey + ":x-oauth-basic")
);
}
ContentType = 'application/json';
Body = (ConvertTo-Json $releaseData -Compress)
}
$result = Invoke-RestMethod @releaseParams
$tag = $result.tag_name[0]
Write-Host "Release $tag Found."
$asset = $result.assets[0].url
$ZipFile = $result.assets[0].name
$asset
$releaseAssetParams = @{
Uri = $asset;
Method = 'GET';
Headers = @{
Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($gitHubApiKey + ":x-oauth-basic"));
}
ContentType = 'application/octet-stream';
}
Invoke-RestMethod @releaseAssetParams -OutFile $ZipFile
執行這個腳本(用正確設置的變量),輸出資產內容,而不是二進制文件(ZIP)文件符合市場預期。
內容類型未被識別嗎?
在修復了不允許設置Accept Header的錯誤後,與Powershell 4.0協同工作。 –
@SamTyson然後,不要忘記接受答案。 '':-) –