Zac*_*den 3 python github github-api python-requests
我正在尝试在我公司的企业 github 服务器上下载存储库的版本。我有带有 OAuth 令牌的正确授权标头,并且能够获取发布端点的响应。这个特定的存储库包含源代码的 zip 和 tarball 以及已编译的可执行文件。我正在尝试下载构建的可执行文件。发布请求的响应如下所示,其中包含感兴趣的密钥browser_download_url
中的密钥。assets
{
"url": "***/releases/1491",
"assets_url": "***/releases/1491/assets",
"upload_url": "***/releases/1491/assets{?name,label}",
"html_url": "***/releases/tag/1.0.6",
"id": 1491,
"tag_name": "1.0.6",
"target_commitish": "release-1.0.6",
"name": "1.0.6",
"draft": false,
"prerelease": true,
"created_at": "2017-10-03T15:51:25Z",
"published_at": "2017-10-10T16:54:16Z",
"assets": [
{
"url": "***/releases/assets/53",
"id": 53,
"name": "<program>.exe",
"label": null,
"content_type": "application/x-msdownload",
"state": "uploaded",
"size": 36023208,
"download_count": 10,
"created_at": "2017-10-10T17:40:32Z",
"updated_at": "2017-10-10T17:40:32Z",
"browser_download_url": "***/1.0.6/<program>.exe"
}
],
"tarball_url": "***/tarball/1.0.6",
"zipball_url": "***/zipball/1.0.6",
"body": "<description of release>"
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试请求时,browser_download_url
我会在响应内容中获取登录页面的 html,因为它正在寻找进一步的身份验证。
response = session.get(release_endpoint_response.json()['assets'][0]['browser_download_url'], headers={'Authorization': 'token <personal_access_token>'})
Run Code Online (Sandbox Code Playgroud)
我的问题是,有什么方法可以从此链接下载,而无需显式登录并简单地使用令牌和标头?
解决这个问题的最佳方法是什么?是否有任何包装器或库可以帮助我以不同的方式实现这一目标?多谢!
编辑:此外,应该注意的是,当请求 tarball 和 zip url 时,压缩的源代码文件可以正常下载。这里的问题是我有一个不合适的构建环境,所以我想下载可执行文件。有趣的是,我没有像构建 exe 那样遇到 zip 的身份验证问题。
归档时间: |
|
查看次数: |
3697 次 |
最近记录: |