Github:对私人存储库的只读访问

问题描述 投票:0回答:5

我正在 Github 上开发一些私人项目,我想将夜间 cronjobs 添加到我的部署服务器以从 github 提取最新版本。我目前正在通过在每个部署服务器上生成密钥对并将公钥添加到 github 项目作为“部署密钥”来实现此目的。

但是,我最近发现这些部署密钥实际上确实具有对该项目的写入权限。因此,每个服务器管理员都可能开始编辑。此外,我可以将每个部署密钥仅添加到一个存储库,而我希望能够在同一台部署服务器上部署多个存储库。

有没有办法为 Github 上的选定用户提供私有存储库的只读访问权限?

git github collaboration readonly public-key
5个回答
77
投票

拥有良好的权威,(相对较新的)“组织”功能允许您添加对私有存储库具有只读访问权限的人员。


52
投票

对于发现此问题的其他人,请知道现在您实际上可以创建只读部署密钥:

https://github.com/blog/2024-read-only-deploy-keys

您仍然可以创建具有写入权限的部署密钥,但在添加密钥时必须显式授予该权限。


3
投票

我知道问题是关于 github 的,但也许对于一些读者来说,知道这在 gitlab 中是可能的并且是免费的会很高兴。检查https://gitlab.com/help/user/permissions。我花了一些时间使用 github,但没有完全达到我的目的。如果我知道的话,我就会用 gitlab 开始这个特定的项目。


2
投票

对于组织: 我建议专门为用户创建一个新团队。然后,该团队可以授予对您指定的存储库的只读访问权限。我希望这有帮助!


0
投票

2023-12-26 GitHub 的答复:

git clone https://myusername:[email protected]/myusername/myproject.git

地点:

  • myusername
    是您的 GitHub 用户名
  • myproject
    是 Git 项目名称。
  • github_pat_11AAJ3xxxxx
    是访问令牌。

生成访问令牌:

  • 在 GitHub 中,单击个人资料图片(右上角),然后单击
    [ Settings > Developer Settings > Personal Access Tokens > Fine Grained Tokens ]
  • 然后单击
    Generate New Token
    ,选择
    Only select repositories
    并选择您要授予只读访问权限的私有存储库。
  • 在存储库权限下,确保
    Read access to actions, administration, code, codespaces, metadata, and security events
  • 将生成的令牌复制到剪贴板。
© www.soinside.com 2019 - 2024. All rights reserved.