Личные страницы для частного репозитория Github


244

Не удалось найти ничего в документации по github, а также здесь, на SO. Но мне было интересно, может ли существовать http://foo.github.comчастное хранилище с именем, fooдоступное только одному, имеющему доступ к fooсамому хранилищу.

Я помню, что читал что-то о страницах github, которые всегда были общедоступными, но, похоже, больше не могу этого найти.

И удивительно, я не могу найти кого-то еще, кто задает вопрос.


2
Я полагаю, что не так много людей используют Github для размещения частных репозиториев. Или, по крайней мере, очень немногие из них используют gh-страницы.
Сиддхартха Редди

Я думаю, что правильный ответ теперь должен быть stackoverflow.com/a/54340540/1168342
Fuhrmanator

Ответы:


219

Я собрал билет в службу поддержки против Github и получил ответ, подтверждающий тот факт, что ВСЕ страницы общедоступны. Теперь я попросил их добавить заметку на help.github.com/pages.


6
Должно ли ваше хранилище страниц быть публичным, чтобы страницы GitHub работали?
Деннис

34
@ Денис: Нет, это не так - ваш репо может быть закрытым. Но опубликованные страницы будут общедоступными, и у GitHub нет встроенного способа ограничить доступ к просмотру, чтобы их могли видеть только участники этого частного репо.
Мерлин Морган-Грэм

6
К вашему сведению, это можно увидеть ОЧЕНЬ Ясно здесь
Дерек Адэйр

// Контроль доступа - очень интересная проблема для Github. Мне нравится, что это привлекает внимание, @kashyap! Спасибо.
Натан Басанезе

Добавление к комментариям @Derek Adair выше. На сайте говорится: «Предупреждение: сайты GitHub Pages общедоступны в Интернете, даже если их хранилища являются частными. Если у вас есть конфиденциальные данные в хранилище страниц, вы можете удалить их перед публикацией».
Джей Килин

62

Согласно документации GitHub Pages :

Все репозитории проекта готовы использовать генератор для публикации. Тем не менее, обратите внимание, что частные репозитории будут публиковать открытые страницы.

Так что нет, в настоящее время нет возможности создавать частные страницы GitHub из частного репозитория GitHub.

РЕДАКТИРОВАТЬ:

Простой обходной путь

Обходной путь для некоторых ситуаций, который может быть полезен, состоит в том, чтобы просто переименовать репозиторий во что-то, отличное от формата страниц GitHub, в то время как вы хотите, чтобы он был закрытым (например, на этапе разработки), и когда он будет готов сделать его общедоступным, исправьте имя. Очевидно, что это все равно не поможет, если вы ищете способ публикации страниц с аутентификацией, но если вы просто хотите скрыть проект страниц GH во время его выполнения, это может помочь.

Фактический Auth Wrapper для Jekyll (страницы GitHub)

Кроме того, существует проект под названием Jekyll Auth, который GitHubber @benbalter сделал для такого использования. Jekyll Auth предоставляет базовую оболочку аутентификации для проектов Jekyll, включая страницы GitHub. Смотрите README репо для использования.


1
Похоже, что первая ссылка старая. help.github.com/articles/what-is-github-pages теперь имеет похожее предупреждение.
radicaledward101

14

На page.github.com упоминается:

Страницы Github размещаются бесплатно и легко публикуются через наш сайт,

Не говоря уже о контроле доступа.

Страница помощи GitHub не говоря уже о какой - либо ACL либо.
Они лучше всего управляются в ветке gh-pages и могут управляться в их собственном подмодуле .
Но опять же, без каких-либо ограничений с точки зрения видимости, когда-то опубликованных GitHub.


14
На самом деле. Все страницы являются общедоступными. Я получил ответ (на тикете поддержки) от github, подтверждающий это.
kashyap

13

Многие ответы устарели (до приобретения Microsoft / бесплатные частные репозитории). Этот был написан после объявления о бесплатных частных репозиториях.

Страницы Github недоступны в бесплатных частных репозиториях для физических лиц, как показано в настройках репо:

введите описание изображения здесь

2020 (самый базовый план сейчас «Команда»):

обновить команду github или сделать этот репозиторий общедоступным, чтобы включить Pages


5
Это облом. Реклама с колокольчиками и свистит о бесплатной доступности частных репозиториев, но они массово сокращают их функциональность.
Роберт Эстивилл

9

Есть статья с рабочей идеей о том, как запросить авторизацию oAuth перед динамической загрузкой статического контента:

Защита сайта, работающего на страницах Github, с помощью JSON Backend в частном репозитории

Содержимое должно храниться в секретном репозитории GitHub, а зритель имеет к нему доступ для чтения. GitHub pages хранит только обслуживающий код JS.


Это намного лучше, чем использование hasdocs, потому что вам не нужно давать разрешение на репо ненадежным сторонним приложениям.
Томмз

8

Как указано выше, страницы 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 Мб, сервис не может возвращать файлы большего размера. Тем не менее, я обнаружил, что сервис вполне подходит для небольших проектов для внутренней документации или промежуточной версии веб-сайта.


1
Примечание: этот сервис сейчас мертв (или потенциально временно потерпел крах)
Джейсон Аксельсон

1

Если вы нажмете admin на закрытое хранилище и прокрутите вниз до части о страницах, он пишет, что это будет публично. Позже я проверю, возможен ли контроль .htaccess или аналогичный, но я не очень надеюсь на это.


1
Метод .htaccess не работает. Если есть какие-либо полезные предложения, дайте мне знать :)
Rohde Fischer

Я тоже ничего не смог найти. Я думаю, что этот вопрос закрыт на данный момент.
kashyap

0

Вы можете использовать GitLab . Вы можете определить частные проекты и все объекты, как Github.


Личные страницы еще не доступны на основном сайте GitLab (только в локальных копиях) ... возможно, к середине мая 2019 года (см. < Gitlab.com/gitlab-com/gl-infra/infrastructure/issues/5576> ).
rivy

-3

Вы можете разместить пароль в хранилище, а затем просто спрятать страницу за скрытым адресом, который получен из этого пароля. Это не очень безопасный способ, но он прост.

демонстрация

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.