在github文档和这里也找不到任何东西。但是我想知道是否有一个名为foo的私人存储库http://foo.github.com,只有一个人可以访问foo存储库本身。

我记得读过一些关于github页面总是公开的东西,但似乎再也找不到了。

令人惊讶的是,我似乎也找不到其他人问这个问题。


当前回答

对于GitHub企业云客户来说,这终于成为可能:对GitHub页面的访问控制。

要在Pages上启用访问控制,请导航到存储库 设置,并单击下拉菜单在公共和 站点的私有可见性。

其他回答

你可以把密码存储在一个存储库中,然后把页面隐藏在隐藏地址后面,隐藏地址是由密码派生的。这不是一种很安全的方法,但很简单。

示范

许多答案都过时了(在微软收购之前/免费私人回购)。这篇文章是在宣布免费私人回购之后写的。

Github页面在个人免费私人回购中不可用,如回购设置所示:

2020年(现在最基本的计划是“团队”):

请注意

所有页面都是公开的,即使您进行了升级。升级只在私有回购上启用Pages功能,就像它启用其他功能一样。Pages功能是公开的静态虚拟主机。

如上所述,Github页面不支持该功能。当我们的团队决定在内部和私下托管项目文档(静态HTML)时,我也遇到了同样的问题。

我最终创建了一个服务https://www.privatehub.cloud它基本上是一个简单的代理服务器与Github OAuth身份验证,所以它只是返回您的Github存储库内容与适当的MIME类型。按照设计,只有有权访问foo的人才能在https://bar-foo.privatehub.cloud上看到foo的内容。从功能的角度来看,你可以把它看作是一个简化的带有内置身份验证的GitHub页面。

不幸的是,Github OAuth不允许请求对私有回购的只读访问,因此服务器需要完全访问(显然,它不会向你的回购写入任何内容)。由于GitHub API只允许检索1mb以下的文件,该服务不能返回更大的文件。然而,我发现这项服务非常适合小型项目,比如内部文档或网站的分期版本。

有一篇文章介绍了如何在动态加载静态内容之前请求oAuth授权:

(archive.org)在私有存储库中使用JSON后端保护在Github页面上运行的网站(原始文章变成404)

内容应该存储在一个秘密的GitHub存储库中,查看器具有对它的读访问权。GitHub页面只存储服务的JS代码。

作为一种替代方案,目前可以使用GitLab而不是GitHub来做OP要求做的事情。有关GitLab Pages访问控制功能,请参阅文档。由于GitHub不支持这个功能,如果将项目移植到GitLab不是问题,这是一个很好的解决方案。