如何通过URL下载GitHub私有仓库文件?权限配置咨询
问题
我在GitHub有一个私有仓库文件,已生成仅授予“Pull requests”和“Metadata(必填)”只读权限的细粒度token。尝试使用以下URL下载文件均返回404错误:
https://myuser:token_generated@github.com/myuser/myrepository/file.txt:返回“Not Found”空白页https://myuser:token_generated@github.com/myuser/myrepository/blob/file.txt、https://myuser:token_generated@github.com/myuser/myrepository/blob/main/file.txt:跳转至GitHub 404页面,提示“This is not the web page you are looking for.”https://myuser:token_generated@raw.githubusercontent.com/myuser/myrepository/main/file.txt:返回“404:not Found”空白页
请问正确的下载URL是什么?是否需要为Token赋予更多权限?
解决方案
1. 正确的下载URL
私有仓库的原始文件下载需使用GitHub API接口,而非直接访问raw或blob页面。正确的URL格式为:
https://api.github.com/repos/myuser/myrepository/contents/file.txt?ref=main
请替换以下参数:
myuser:你的GitHub用户名myrepository:目标仓库名称file.txt:文件的完整路径(若文件在子文件夹中,需写成folder/subfolder/file.txt)main:文件所在的分支名(如master或自定义分支)
注意:不要将token放在URL中做Basic认证,需在请求头中携带token,格式为Authorization: Bearer token_generated。
2. 权限调整
当前token仅拥有“Pull requests”和“Metadata”权限,不具备读取仓库内容的权限,这是导致404的核心原因。需为token添加Contents的只读权限:
- 进入GitHub的细粒度token管理页面
- 找到目标token,在“Repository permissions”区域找到“Contents”选项
- 将权限设置为“Read”并保存
更新权限后,使用上述API URL并携带正确的请求头,即可成功下载文件。
内容的提问来源于stack exchange,提问作者vbajr
相关产品推荐
相关产品推荐

