使用访问令牌在私人代码仓库上进行 Github GET 请求

21

我在我的组织中有一个私有仓库,需要提供访问权限。我想通过GET请求(浏览器)访问一个文件。我没有终端或curl或其他工具。

我创建了一个虚拟帐户,并与我的组织关联。我进入https://github.com/settings/tokens并添加了一个访问令牌。

接下来,我尝试了以下URL:

但这两个URL都无法正常工作。它们似乎只能使用在Github GUI上点击“Raw”时生成的访问令牌进行访问。不幸的是,这个令牌很快就会过期,因此不能满足我的应用程序需求。

如何使用访问令牌通过URL访问Github上的私有资源?


1
我没有终端、curl或任何其他工具。很遗憾:它应该可以使用curl:https://gist.github.com/Integralist/9482061 - VonC
2个回答

5

2
嗨。我收到了“404未找到”错误。可能是因为我是通过“个人访问令牌”菜单而不是“oAuth应用程序”菜单生成的令牌。我会再汇报情况的。 - bny
哎呀,真是麻烦,我以为会成功的,因为个人访问令牌页面上写着“个人访问令牌的功能类似于普通的OAuth访问令牌”。 - Azquelt
是的,这就是我正在调查的内容。我成功通过GET请求访问了我的repo,使用的链接是https://api.github.com/repos/ORG/REPO/contents/README.md?ref=master&access_token=ACCESSTOKEN。不幸的是,这只给了我一个描述文件的答案,例如:{ "name": "README.md", "path": "README.md", "sha": "071ce7145e881eb36b48a8acb2849720d914d468", "size":, etc - bny
实际上,为了补充我之前的评论,有一个contents字段,其中包含文件的base64编码内容。不幸的是,我无法访问终端,因此无法将其解码为UTF-8...您是否知道通过api.github.com接口使用我的个人令牌获取原始内容的任何方法? - bny
@bny,你还应该获得一个“download_url”字段,你可以使用它来下载文件(你将不得不进行另一个调用)。 - alcaprar
显示剩余4条评论

3

要获取原始数据,请使用:

curl \
  -H 'Authorization: token <personal token gen value>' \
  https://raw.<host>/user/org/repo/pathtofile

通过 API 获取数据:
curl \
  -H 'Authorization: token <personal token gen>' \
  -H 'Accept:application/vnd.github.VERSION.raw' \
  https://<host_name>/api/v3/repos/<user>/<repo_name>/contents/<path_to_file>/?ref=<branch>

我们能否对第4行的VERSION进行澄清? 另外,我们如何确定path_to_file的路径? - mckenzm
版本是纯文本的HTTP头,它不指向任何特定的版本。对于路径,您需要从存储库的根目录到文件的相对路径。 - PruthviRaj Reddy
在浏览器中,这包括'blob'和'master',对于浏览器中的原始文件,(没有API)主机名是raw.githubusercontent.com。我无法从filename.ext中获得任何乐趣。我正在使用https://raw.github.com/xxxx/project/filename.ext,但我没有组织?这让我抓狂。 - mckenzm
发现令牌没有读取私有存储库的访问权限,尽管已经请求了。似乎需要完全控制。类似于需要在文件夹上执行操作... - mckenzm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接