266

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

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

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

4

13 回答 13

231

我已经向 Github 提出了支持票,并得到了确认所有页面都是公开的事实的回复。我现在要求他们在 help.github.com/pages 中添加注释。

于 2012-06-13T03:14:01.307 回答
67

根据GitHub Pages 文档

所有项目存储库都已准备好使用生成器进行发布。但是,请注意,私有存储库将发布公共页面。

所以不,目前无法从私有 GitHub 存储库创建私有 GitHub 页面。

编辑:

一个简单的解决方法

对于某些可能有用的情况,一种解决方法是简单地将 repo 重命名为 GitHub 页面格式以外的其他内容,同时您希望它是私有的(例如在开发阶段),并且在准备好将其公开时,然后更正名称。显然,如果您正在寻找一种方法来发布具有身份验证的页面,这仍然无济于事,但如果您只想在 GH 页面项目正在进行时隐藏它,这可能会有所帮助。

Jekyll 的实际 Auth Wrapper(GitHub 页面)

或者,GitHubber @benbalter有一个名为Jekyll Auth的项目用于此类用途。Jekyll Auth 为 jekyll 项目(包括 GitHub 页面)提供了一个基本的身份验证包装器。请参阅 repo 的 README以供使用。

于 2013-09-27T18:54:00.620 回答
21

许多答案已经过时(Microsoft 收购前/免费私人回购)。这是在宣布免费私人回购之后写的。

Github 页面不适用于个人的免费私人回购,如回购设置所示:

在此处输入图像描述

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

升级到 github 团队或将此存储库公开以启用 Pages

注意

即使您升级,所有页面都是公开的。升级只启用私有存储库上的页面功能,就像它启用其他功能一样。页面功能是公开可用的静态 Web 托管。

于 2019-01-24T06:27:30.347 回答
15

page.github.com确实提到:

Github 页面是免费托管的,可以通过我们的网站轻松发布,

没有提到访问控制。

GitHub 页面帮助也没有提及任何 ACL 。
它们最好在gh-pages 分支中进行管理,并且可以在它们自己的子模块中进行管理。
但同样,一旦 GitHub 发布,在可见性方面没有任何限制。

于 2012-05-25T05:59:22.170 回答
10

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

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

内容应存储在一个秘密的 GitHub 存储库中,查看者对其具有读取权限。GitHub 页面仅存储提供服务的 JS 代码。

于 2014-08-19T10:34:45.437 回答
9

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

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

不幸的是,Github OAuth 不允许请求read-only访问私有存储库,因此服务器需要完全访问权限(显然,它不会向您的存储库写入任何内容)。由于 GitHub API 仅允许检索 1 Mb 以下的文件,因此该服务无法返回更大的文件。然而,我发现该服务非常适合用于内部文档或网站临时版本的小型项目。

于 2017-02-13T07:01:13.723 回答
9

GitHub Enterprise Cloud 客户终于可以做到这一点:GitHub Pages 的访问控制

要在页面上启用访问控制,请导航到您的存储库设置,然后单击下拉菜单以在您的站点的公共和私人可见性之间切换。

在此处输入图像描述

于 2020-10-22T09:12:58.863 回答
3

2021 年 1 月:GitHub Enterprise 现在可以做到这一点(所以:对于 github.com 来说还没有)。
看:

GitHub 页面的访问控制

GitHub Pages 现在为您提供限制访问的选项,使该站点仅对有权访问发布该页面的存储库的用户可见。

通过访问控制,您可以使用 GitHub Pages 在整个企业中发布和共享内部文档和知识。

作为此版本的一部分,我们将引入以下功能:

  • 存储库管理员可以选择 GitHub Pages 站点是公开可见还是仅限有权访问存储库的用户查看。
  • 私有和内部存储库都支持私有可见性。借助内部存储库,您企业中的每个人都可以使用与登录 github.com 相同的凭据查看页面
  • 组织管理员可以配置成员可以为其主页选择的可见性选项。例如,您可以强制您的成员只能私下发布内容。

此功能今天在 GitHub Enterprise Cloud 上普遍可用。
要在页面上启用访问控制,请导航到您的存储库设置,然后单击下拉菜单以在您的站点的公共和私人可见性之间切换。

GitHub 页面的私人发布 -- https://i2.wp.com/user-images.githubusercontent.com/55514721/101868473-46f81880-3b32-11eb-9708-a8537f41adaf.png?ssl=1

于 2021-01-21T20:51:50.097 回答
2

太难过了现在是 2020 年,我们无法拥有私人 GithubPäges:

在此处输入图像描述

于 2020-08-20T19:19:16.187 回答
1

如果您在私人回购中按 admin 并向下滚动到关于页面的部分,它会写道它将是公开的。稍后我会检查 .htaccess 控制或类似的控制是否可行,但我对此不抱太大希望。

于 2012-06-07T09:42:04.160 回答
1

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

于 2021-10-26T18:15:53.913 回答
0

这个 GitHub 应用程序:https ://github.com/apps/priv-page允许用户为其私有存储库拥有私有页面。

于 2021-01-02T14:34:51.977 回答
-4

您可以在存储库中托管密码,然后将页面隐藏在隐藏地址后面,该地址源自该密码。这不是一个非常安全的方法,但它很简单。

示范

于 2017-03-17T07:17:56.740 回答