gpt4 book ai didi

GitHub OAuth2 token : How to restrict access to read a single private repo

转载 作者:IT王子 更新时间:2023-10-29 00:47:59 25 4
gpt4 key购买 nike

用例:

  1. 命令行应用程序(部署到第 3 方机器)需要能够通过 GitHub API (v3) 下载属于组织的私有(private)存储库的 tarball 副本

  2. 应用程序应该只能访问这个私有(private)仓库,而不能访问其他具有只读权限的仓库。

在我的 github 帐户上注册 client_id/secret 后,我​​已经能够通过为应用程序创建授权来完成 (1)。但是,授权返回的 token 似乎不允许对存储库进行只读访问,也不限于一个存储库(例如,可能会使用 token 修改该存储库以及属于组织的其他存储库)。

是否可以通过适当的范围限制访问?我在 API 文档 ( https://developer.github.com/v3/oauth/#scopes ) 中没有看到任何相关内容。

最佳答案

我认为您不能以这种方式限制 github OAuth token 。 github docs for OAuth这么说

While Git over HTTP with OAuth reduces friction for some types of applications, keep in mind that unlike deploy keys, OAuth tokens work for any repository for which the user has access.

因此,虽然您可以根据事件的类型限制 token 的范围,但您不能将其限制为 repo 协议(protocol)的子集。

Deploy keys可以限制为单个存储库,但允许写访问。

显而易见的策略(正如 Thomas 所提到的)是创建一个代表应用程序的虚拟帐户。考虑到 OAuth 的目标,这在任何情况下都可能是一个更好的工作流程——它可以让您轻松更改应用程序拥有的权限,就好像它实际上是一个用户一样。

Github 甚至明确提到/支持这个策略,称它们为 machine users .

关于GitHub OAuth2 token : How to restrict access to read a single private repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26372417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com