我正在 Github 上开发一些私人项目,我想将夜间 cronjobs 添加到我的部署服务器以从 github 提取最新版本。我目前正在通过在每个部署服务器上生成密钥对并将公钥添加到 github 项目作为“部署密钥”来实现此目的。
但是,我最近发现这些部署密钥实际上确实具有对该项目的写入权限。因此,每个服务器管理员都可能开始编辑。此外,我可以将每个部署密钥仅添加到一个存储库,而我希望能够在同一台部署服务器上部署多个存储库。
有没有办法为 Github 上的选定用户提供私有存储库的只读访问权限?
对于发现此问题的其他人,请知道现在您实际上可以创建只读部署密钥:
https://github.com/blog/2024-read-only-deploy-keys
您仍然可以创建具有写入权限的部署密钥,但在添加密钥时必须显式授予该权限。
我知道问题是关于 github 的,但也许对于一些读者来说,知道这在 gitlab 中是可能的并且是免费的会很高兴。检查https://gitlab.com/help/user/permissions。我花了一些时间使用 github,但没有完全达到我的目的。如果我知道的话,我就会用 gitlab 开始这个特定的项目。
对于组织: 我建议专门为用户创建一个新团队。然后,该团队可以授予对您指定的存储库的只读访问权限。我希望这有帮助!
2023-12-26 GitHub 的答复:
git clone https://myusername:[email protected]/myusername/myproject.git
地点:
myusername
是您的 GitHub 用户名myproject
是 Git 项目名称。github_pat_11AAJ3xxxxx
是访问令牌。生成访问令牌:
[ 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
。