使用PowerShell从私有GitHub存储库下载文件(使用OAuth)

pkln4tw6  于 2023-01-20  发布在  Shell
关注(0)|答案(2)|浏览(285)

我已经广泛地搜索了一个解决方案,但还没有找到成功。我只是想能够使用PowerShell从我的私人GitHub repo下载文件。我想使用OAuth,而不是基本的auth,所以我生成了一个令牌。但从这里开始,我引用的例子都不适合我。我能做的最好的事情是得到一个"未找到"的响应。
我尝试过的一个代码示例是:

Invoke-WebRequest https://api.github.com/repos/MyAccount/MyRepo/contents/MyFile.txt -Headers @{"Authorization"="token 123456789012345678901234567890"} -OutFile C:\Temp\MyFile.txt

结果:
调用Web请求:{"消息":"未找到","文档URL ":" www.example.com "}https://docs.github.com/rest/reference/repos#get-repository-content"}
我很有信心,我有正确的身份验证。我相信我只是有路径错误的路径到我的文件。任何帮助将不胜感激。

oxalkeyp

oxalkeyp1#

与此SO讨论相关的潜在重复用例......
PowerShell: retrieve file from GitHub

$url = 'https://github.com/mycompany/myrepo/blob/master/myscript.ps1'
$wc  = New-Object -TypeName System.Net.WebClient
$wc.Headers.Add('Authorization','token your_token')
iex ($wc.DownloadString($url))

..当然没有调用WebRequest。
另见:
Using PowerShell and oAuth

# Modified article code
Invoke-RestMethod https://api.github.com/repos/MyAccount/MyRepo/contents/MyFile.txt -Method Get -Headers @{"Authorization" = "Bearer $accessToken"}
afdcj2ne

afdcj2ne2#

我不得不在Powershell中更改脚本才能让它工作:

$credentials="<github_access_token>"
$repo = "<user_or_org>/<repo_name>"
$file = "<name_of_asset_file>"
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "token $credentials")
$headers.Add("Accept", "application/json")
$download = "https://raw.githubusercontent.com/$repo/main/$file"
Write-Host Dowloading latest release
Invoke-WebRequest -Uri $download -Headers $headers -OutFile $file

相关问题