2012-05-25 6 views
175

Impossibile trovare qualcosa nella documentazione di github e anche qui su SO. Ma mi chiedevo se potesse esistere unoper un repository privato denominato foo che è accessibile solo a uno ha avuto accesso al repository foo stesso.Pagine private per un repository Github privato

Mi ricordo di aver letto qualcosa su pagine github sempre pubbliche ma che non riesco a trovare più quello.

E sorprendentemente, non riesco a trovare nessun altro a fare la domanda.

+2

Suppongo allora che non un sacco di persone stanno usando Github per ospitare pronti contro termine privati. O almeno, pochissimi di quelli stanno usando gh-pages. –

risposta

149

Avevo raccolto un ticket di supporto contro Github e ottenuto una risposta confermando il fatto che TUTTE le pagine sono pubbliche. Ora ho chiesto loro di aggiungere una nota per help.github.com/pages.

+4

Il tuo repository di pagine deve essere pubblico affinché le pagine di GitHub funzionino? – Dennis

+19

@Dennis: No, non è così - il tuo repository può essere privato. Ma le pagine pubblicate saranno pubbliche e GitHub non ha un modo integrato per limitare l'accesso alla vista per consentire solo ai contributori su quel repository privato di vederli. –

+2

FYI può essere visto MOLTO CHIARAMENTE [qui] (https://help.github.com/articles/what-are-github-pages/) –

11

Il page.github.com fa menzione:

Pagine Github sono ospitati gratuitamente e facilmente pubblicati attraverso il nostro sito,

Senza mai menzionare il controllo degli accessi.

Il GitHub page help non menziona alcun ACL.
Sono gestiti al meglio in un gh-pages branch e possono essere gestiti in their own submodule.
Ma ancora una volta, senza alcuna restrizione in termini di visibilità, una volta pubblicato da GitHub.

+10

Infatti. Tutte le pagine sono pubbliche. Ho ricevuto una risposta (su un ticket di supporto) da github che conferma questo. – kashyap

1

Se si preme admin su un repository privato e si scorre verso il basso fino alla parte relativa alle pagine, viene scritto che sarà pubblico. Controllerò più tardi se il controllo .htaccess o simile è possibile, ma non ho molte speranze per questo.

+1

Il metodo .htaccess non funziona. Se ci sono suggerimenti utili fammi sapere :) –

+0

Non sono riuscito a trovare nulla. Immagino che questo problema sia chiuso per ora. – kashyap

42

Secondo GitHub Pages documentation:

Tutti gli archivi del progetto sono pronti ad utilizzare il generatore per la pubblicazione. Tuttavia, si noti che i repository privati ​​pubblicheranno le pagine pubbliche.

Quindi no, al momento non è possibile creare pagine GitHub private da un repository GitHub privato.

EDIT:

Una soluzione semplice

Una soluzione per alcune situazioni che potrebbero essere utili è di rinominare semplicemente il pronti contro termine a qualcosa di diverso formato pagine GitHub, mentre si vuole che sia privato (ad esempio in una fase di sviluppo) e quando è pronto per renderlo pubblico, correggere il nome. Ovviamente questo non aiuta ancora se stai cercando un modo per pubblicare pagine con autenticazione, ma se vuoi solo nascondere un progetto di pagine GH mentre è in corso, questo potrebbe aiutare.

Un effettivo Auth Wrapper per Jekyll (pagine GitHub)

alternativa, c'è un progetto chiamato Jekyll Auth che GitHubber @benbalter fatta per tale utilizzo. Jekyll Auth fornisce un wrapper di autenticazione di base per i progetti jekyll, incluse le pagine GitHub. See the repo's README per l'uso.

+0

It a nice approccio pragmatico. – Sharez

8

C'è un articolo con un'idea di lavorare su come richiedere l'autorizzazione OAuth prima di caricare contenuti statici in modo dinamico:

Securing Site That Runs on Github Pages With JSON Backend In Private Repository

contenuti devono essere conservati in un archivio segreto GitHub con un visualizzatore di aver letto l'accesso ad essa . Le pagine GitHub memorizzano solo il codice JS di pubblicazione.

+0

Questo è molto meglio dell'utilizzo di hasdocs, perché non è necessario dare il permesso al repository a un'app di terze parti non attendibile. – Tommz

5

Come descritto sopra, le pagine Github non supportano tale funzionalità. Ho avuto lo stesso problema quando il nostro team ha deciso di ospitare la documentazione del progetto (HTML statico) internamente e in privato.

Ho finito per creare un servizio https://www.privatehub.cloud È fondamentalmente un semplice server proxy con l'autenticazione Github OAuth, quindi restituisce semplicemente il contenuto del repository GitHub con un tipo MIME corretto. In base alla progettazione, solo chi ha accesso a foo sarà in grado di vedere il contenuto di foo allo https://bar-foo.privatehub.cloud. Dal punto di vista funzionale, puoi pensarci come pagine GitHub semplificate con autenticazione integrata.

Sfortunatamente, Github OAuth non consente di richiedere l'accesso read-only a repository privati, quindi il server ha bisogno dell'accesso completo (ovviamente, non scrive nulla sul repository). Poiché l'API di GitHub consente di recuperare solo i file con una capacità di 1 Mb, il servizio non può restituire file più grandi. Tuttavia, ho trovato che il servizio è abbastanza adatto per piccoli progetti per la documentazione interna o la versione di staging di un sito web.

-3

È possibile ospitare la password in un repository e quindi nascondere la pagina dietro l'indirizzo nascosto, derivato da tale password. Questo non è un modo molto sicuro, ma è semplice.

Demonstration