Ответ 1
Я поднял билет поддержки от Github и получил ответ, подтверждающий факт, что ВСЕ страницы являются общедоступными. Я попросил их добавить примечание к help.github.com/pages.
Не удалось найти что-либо в документации github, а также здесь, на SO. Но мне было интересно, может ли быть http://foo.github.com
для частного репозитория с именем foo
, доступного только одному, имеющему доступ к самому репозиторию foo
.
Я помню, что читал что-то о страницах github, всегда являющихся публичными, но, похоже, больше не может их найти.
И, что удивительно, я не могу найти никого другого, задающего вопрос.
Я поднял билет поддержки от Github и получил ответ, подтверждающий факт, что ВСЕ страницы являются общедоступными. Я попросил их добавить примечание к help.github.com/pages.
Согласно Документация документации GitHub:
Все репозитории проектов готовы использовать генератор для публикации. Однако обратите внимание, что частные репозитории будут публиковать опубликованные страницы.
Нет, в настоящее время нет возможности создавать частные страницы GitHub из частного репозитория GitHub.
EDIT:
Обходной путь для некоторых ситуаций, которые могут быть полезны, - просто переименовать репо в нечто иное, чем формат страниц GitHub, в то время как вы хотите, чтобы он был закрытым (например, на этапе разработки) и когда он был готов сделать его общедоступным, тогда исправить имя. Очевидно, это все равно не поможет, если вы ищете способ публикации страниц с аутентификацией, но если вы просто хотите скрыть проект страниц GH во время его выполнения, это может помочь.
В качестве альтернативы существует проект под названием Jekyll Auth, который GitHubber @benbalter для такого использования. Jekyll Auth предоставляет базовую оболочку аутентификации для проектов jekyll, включая страницы GitHub. Обратитесь к REOPME repo для использования.
page.github.com упоминает:
Github Pages размещаются бесплатно и легко публикуются через наш сайт,
Без упоминания контроля доступа.
Справка по странице GitHub также не упоминает ACL.
Они лучше всего управляются в разделе gh-pages и могут управляться в их собственном подмодуле.
Но опять же, без каких-либо ограничений в отношении видимости, однажды опубликованных GitHub.
Как указано выше, страницы Github не поддерживают эту функциональность. У меня была такая же проблема, когда наша команда решила разместить документацию по проекту (статический HTML) как внутри, так и в частном порядке.
Я закончил создание сервиса https://www.privatehub.cloud Это простой прокси-сервер с аутентификацией Github OAuth, поэтому он просто возвращает ваш репозиторий GitHub содержимое с соответствующим типом MIME. По дизайну только те, у кого есть доступ к foo
, смогут видеть foo
контент в https://bar-foo.privatehub.cloud
. С функциональной точки зрения вы можете думать об этом как о упрощенной странице GitHub со встроенной аутентификацией.
К сожалению, Github OAuth не позволяет запрашивать read-only
доступ к частным репозиториям, поэтому серверу нужен полный доступ (очевидно, он ничего не пишет для вашего репо). Поскольку GitHub API позволяет извлекать файлы только под 1 Мбайт, служба не может вернуть более крупные файлы. Тем не менее, я нашел, что услуга вполне подходит для небольших проектов для внутренней документации или промежуточной версии веб-сайта.
Существует статья с рабочей идеей о том, как запрашивать авторизацию oAuth, прежде чем загружать статический контент динамически:
Защита сайта, работающего на страницах Github, с помощью JSON Backend в частном репозитории
Содержимое должно храниться в секретном репозитории GitHub, когда зритель имеет доступ к нему. На страницах GitHub хранится только обслуживающий JS-код.
Если вы нажмете admin на частном репо и прокрутите вниз до части о страницах, он пишет, что он будет общедоступным. Я проверю позже, если возможно управление .htaccess или подобное, но я не очень надеюсь на это.
Страницы Github недоступны в бесплатных частных репозиториях для физических лиц, как показано в настройках репо:
Вы можете разместить пароль в репозитории, а затем просто скрыть страницу за скрытым адресом, полученным из этого пароля. Это не очень безопасный способ, но это просто.