Strony prywatne prywatnego repozytorium Github

244

Nie mogłem znaleźć niczego w dokumentacji github, a także tutaj na SO. Zastanawiałem się jednak, czy może istnieć http://foo.github.comprywatne repozytorium o nazwie, fooktóre jest dostępne tylko jedno miało dostęp do samego foorepozytorium.

Pamiętam, że przeczytałem coś o tym, że strony github są zawsze publiczne, ale nie mogę już tego znaleźć.

I, co zaskakujące, nie mogę znaleźć nikogo, kto zadałby to pytanie.

kashyap
źródło
2
Podejrzewam, że niewiele osób korzysta z Github do hostowania prywatnych repozytoriów. A przynajmniej bardzo niewiele z nich używa stron gh.
Siddhartha Reddy
Myślę, że poprawną odpowiedzią powinien być teraz stackoverflow.com/a/54340540/1168342
Fuhrmanator

Odpowiedzi:

219

Podniosłem zgłoszenie do pomocy technicznej przeciwko Githubowi i otrzymałem odpowiedź potwierdzającą fakt, że WSZYSTKIE strony są publiczne. Poprosiłem ich o dodanie notatki na help.github.com/pages.

kashyap
źródło
6
Czy repozytorium stron musi być publiczne, aby strony GitHub działały?
Dennis,
34
@Dennis: Nie, nie ma - Twoje repozytorium może być prywatne. Ale opublikowane strony będą publiczne, a GitHub nie ma wbudowanego sposobu ograniczania dostępu do widoku, który umożliwiłby ich oglądanie tylko osobom z tego prywatnego repozytorium.
Merlyn Morgan-Graham,
6
Do zobaczenia tutaj
Derek Adair
// Kontrola dostępu jest bardzo interesującym zagadnieniem dla Github. Podoba mi się, że to przyciąga uwagę, @kashyap! Dzięki.
Nathan Basanese
Dodanie do komentarzy @Derek Adair powyżej. Witryna mówi: „Ostrzeżenie: strony GitHub Pages są publicznie dostępne w Internecie, nawet jeśli ich repozytoria są prywatne. Jeśli masz poufne dane w repozytorium stron, możesz je usunąć przed opublikowaniem”.
Jay Killeen,
62

Zgodnie z dokumentacją stron GitHub :

Wszystkie repozytoria projektów są gotowe do użycia z generatorem do publikacji. Należy jednak pamiętać, że prywatne repozytoria będą publikować strony publiczne.

Więc nie, w tej chwili nie ma możliwości utworzenia prywatnych stron GitHub z prywatnego repozytorium GitHub.

EDYTOWAĆ:

Proste obejście

Obejściem w niektórych sytuacjach, które mogą być pomocne, jest po prostu zmiana nazwy repozytorium na coś innego niż format stron GitHub, gdy chcesz, aby był prywatny (na przykład w fazie rozwoju), a kiedy jest gotowy do upublicznienia, popraw nazwę. Oczywiście to nadal nie pomaga, jeśli szukasz sposobu na publikowanie stron z uwierzytelnianiem, ale jeśli chcesz tylko ukryć projekt stron GH podczas jego trwania, może to pomóc.

Rzeczywiste Auth Wrapper dla Jekyll (strony GitHub)

Alternatywnie istnieje projekt o nazwie Jekyll Auth, który GitHubber @benbalter stworzył do takiego użytku. Jekyll Auth zapewnia podstawowe opakowanie uwierzytelniające dla projektów jekyll, w tym stron GitHub. Zobacz plik README repozytorium do użycia.

Joel Glovier
źródło
1
Wygląda na to, że ten pierwszy link jest stary. help.github.com/articles/what-is-github-pages ma teraz podobne ostrzeżenie.
radykalny 101
14

Page.github.com wspomina:

Strony Github są hostowane bezpłatnie i łatwo publikowane za pośrednictwem naszej witryny,

Bez wspominania o kontroli dostępu.

Pomoc strony GitHub również nie wspomina o żadnej liście ACL.
Najlepiej nimi zarządzać w gałęzi gh-pages i można nimi zarządzać we własnym podmodule .
Ale znowu, bez żadnych ograniczeń widoczności po opublikowaniu przez GitHub.

VonC
źródło
14
W rzeczy samej. Wszystkie strony są publiczne. Otrzymałem odpowiedź (na zgłoszeniu do pomocy technicznej) od github, która to potwierdziła.
kashyap
13

Wiele odpowiedzi jest nieaktualnych (przejęcie przed Microsoft / bezpłatne prywatne repozytorium). Ten został napisany po ogłoszeniu bezpłatnych prywatnych transakcji repo.

Strony Github nie są dostępne w bezpłatnych prywatnych repozytoriach dla osób fizycznych, jak pokazano w ustawieniach repozytoriów:

wprowadź opis zdjęcia tutaj

2020 (najbardziej podstawowym planem jest teraz „Zespół”):

uaktualnij do zespołu github lub upublicznij to repozytorium, aby włączyć Strony

Corey
źródło
5
To jest szaleństwo. Reklama z dzwonkami i gwizdkami bezpłatnej dostępności prywatnych repozytoriów, ale znacznie obniżyły ich funkcjonalność.
Robert Estivill,
9

Jest artykuł z działającym pomysłem na temat żądania autoryzacji oAuth przed dynamicznym ładowaniem treści statycznej:

Zabezpieczanie strony działającej na stronach Github z zapleczem JSON w prywatnym repozytorium

Treść powinna być przechowywana w tajnym repozytorium GitHub z przeglądarką mającą dostęp do odczytu. Strony GitHub przechowują tylko obsługujący kod JS.

TautrimasPajarskas
źródło
Jest to o wiele lepsze niż używanie hasdoców, ponieważ nie musisz udzielać zgody na swoje repozytorium niezaufanej aplikacji innej firmy.
Tommz
8

Jak wspomniano powyżej, strony Github nie obsługują tej funkcji. Miałem ten sam problem, gdy nasz zespół postanowił hostować dokumentację projektu (statyczny HTML) wewnętrznie i prywatnie.

Skończyłem tworzenie usługi https://www.privatehub.cloud Jest to zasadniczo prosty serwer proxy z uwierzytelnianiem Github OAuth, więc po prostu zwraca zawartość repozytorium GitHub z odpowiednim typem MIME. Z założenia tylko ci, którzy mają dostęp, foobędą mogli zobaczyć foozawartość na https://bar-foo.privatehub.cloud. Z funkcjonalnego punktu widzenia można myśleć o tym jak o uproszczonych stronach GitHub z wbudowanym uwierzytelnianiem.

Niestety, Github OAuth nie pozwala na żądanie read-onlydostępu do prywatnych repozytoriów, więc serwer potrzebuje pełnego dostępu (oczywiście nic nie pisze do twojego repo). Ponieważ GitHub API pozwala pobierać pliki o wielkości poniżej 1 Mb, usługa nie może zwrócić większych plików. Odkryłem jednak, że usługa jest odpowiednia dla małych projektów związanych z wewnętrzną dokumentacją lub wersją strony internetowej.

grieg
źródło
1
Uwaga: ta usługa jest teraz martwa (lub potencjalnie tymczasowo zawieszona)
Jason Axelson
1

Jeśli naciśniesz admin na prywatnym repozytorium i przewiniesz w dół do części o stronach, zapiszesz, że będzie publiczny. Sprawdzę później, czy kontrola .htaccess lub podobna jest możliwa, ale nie mam na to wiele nadziei.

Rohde Fischer
źródło
1
Metoda .htaccess nie działa. Jeśli są jakieś przydatne sugestie, daj mi znać :)
Rohde Fischer,
Nic też nie mogłem znaleźć. Chyba ten problem jest na razie zamknięty.
kashyap
0

możesz użyć GitLab . możesz zdefiniować prywatne projekty, a wszystkie obiekty są jak Github.

mohammad asghari
źródło
Strony prywatne nie są jeszcze dostępne na głównej stronie GitLab (tylko w lokalnych kopiach) ... może do połowy maja 2019 r. (Patrz < gitlab.com/gitlab-com/gl-infra/infrastructure/issues/5576> ).
rivy,
-3

Możesz przechowywać hasło w repozytorium, a następnie po prostu ukryć stronę za ukrytym adresem, który pochodzi od tego hasła. To nie jest zbyt bezpieczny sposób, ale jest prosty.

Demonstracja

Ozbolt
źródło