GitHub OAuth2 Token 如何限制权限仅可读取私有仓库?
GitHub OAuth App仓库只读权限设置方案
你可以根据使用场景选择对应的实现方案:
- 如果你仅需要读取公开仓库的非敏感数据,可以使用
public_reposcope,若要避免写入操作,可以在OAuth App的代码逻辑层面限制所有写入类API的调用,从应用侧避免写入操作。 - 如果你需要访问私有仓库且要求平台侧直接限制只读,建议直接改用GitHub App替代OAuth App,GitHub App支持自定义更细粒度的权限规则,可以单独配置仓库内容、Issue、PR、Workflow等各个维度的读写权限,直接勾选对应维度的只读选项即可实现全仓库的只读访问,权限控制完全在GitHub平台侧生效,比OAuth App的权限灵活性更高。
- 如果必须使用OAuth App,也可以通过组合
repo:status、repo_deployment、repo:invite、security_events几个细粒度scope的方式,在不勾选全量reposcope的前提下实现大部分仓库读取能力,且天然不具备代码推送、仓库配置修改等写入权限。
内容的提问来源于stack exchange,提问作者Terry Windwalker
相关产品推荐
相关产品推荐

