我正在使用pygithub,并且正在获取要下载的正确资产,但我无法弄清楚如何实际获取它们,因为它们位于私有存储库中。我在这里和这里发现了类似的问题,但我正在寻找 Python (3.7) 解决方案。
这是我用来获取我想要的资产的资产信息的代码:
from github import Github
g = Github('username', 'password')
asset = g.get_repo('user/repo').get_latest_release().get_assets()[0]
url = asset.browser_download_url
现在,我可以url
通过在我的浏览器(已经登录到 GitHub)中访问它来验证它是否正确,然后立即开始下载正确的文件。由于pygithub
似乎没有资产的下载选项,我一直在尝试使用requests
来实现相同的目标:
import requests
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
sess = requests.Session()
sess.auth = 'username', 'password'
response = sess.get(url, headers={'user-agent': user_agent})
而此时response
始终是<Response [404]>
。由于我确定该 URL 在我的浏览器中可以正常工作,因此我猜想在尝试下载文件之前我遗漏了一些有关使用 GitHub 进行身份验证的内容。
任何帮助将不胜感激(即使它需要安装其他软件包)