Github:私有仓库只读访问

161
我正在Github上开发一些私有项目,我想在部署服务器上添加夜间定时任务来拉取最新版本。我目前是通过在每个部署服务器上生成密钥对,并将公钥添加到Github项目作为“部署密钥”来实现此目的。
然而,最近我发现这些部署密钥实际上具有对该项目的写权限。因此,每个服务器管理员都有可能开始编辑。此外,我只能将每个部署密钥添加到一个仓库中,而我想能够在同一部署服务器上部署多个仓库。
是否有一种方法可以为Github上的私有存储库提供选定用户的只读访问权限?

您想要具有受限制的只读访问权限,是吗?如果您想要无限制的只读访问权限,可以使用git://协议而不是ssh://(ssh+git://)。 - Jakub Narębski
4个回答

77

30
实际上,这只是一个变通方法,因为您需要创建一个个人账户。他们本可以更好地设计,允许按组织创建API令牌并分配权限,从而消除了不得不妥协于团队成员账户或创建虚假个人账户的变通方法。 - nikolay
29
很遗憾,你需要每月支付25美元才能使用这个功能。对于一个小网站来说,那300美元一年的费用可以用来支付其他很多的托管费用。谢谢@Trindaz。 - Joseph Lust
8
这就是为什么BitBucket不是Github的替代品。 - treecoder
2
此答案已过时。请查看只读部署密钥的答案。 - Hauke

52

对于其他发现这个问题的人,请注意,现在您可以创建只读的部署密钥:

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

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


1
很遗憾,部署密钥只能用于SSH访问。 - pabouk - Ukraine stay strong

3
我知道这个问题是关于Github的,但也许对一些读者来说,了解在Gitlab中免费实现这个功能也是很不错的。请查看https://gitlab.com/help/user/permissions。我曾经花了一些时间在Github上使用,但并没有完全满足我的目的。如果当时我知道在Gitlab上开始这个特定项目会更好一些。

2

对于组织而言: 我建议创建一个专门为用户服务的新团队。该团队可以授予指定仓库的只读访问权限。希望这能有所帮助!


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