Pagine private per un repository Github privato


244

Impossibile trovare nulla nella documentazione di github e anche qui su SO. Ma mi chiedevo se ci potesse essere un http://foo.github.comrepository privato chiamato il fooquale è accessibile solo uno aveva accesso al foorepository stesso.

Ricordo di aver letto qualcosa sulle pagine di github sempre pubbliche, ma non riesco più a trovarle.

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


2
Suppongo quindi che non molte persone stiano usando Github per l'hosting di repository privati. O almeno, pochissimi di questi usano gh-page.
Siddhartha Reddy,

Penso che la risposta corretta dovrebbe essere stackoverflow.com/a/54340540/1168342
Fuhrmanator

Risposte:


219

Avevo raccolto un ticket di supporto contro Github e ho ricevuto una risposta a conferma del fatto che TUTTE le pagine sono pubbliche. Ora ho chiesto loro di aggiungere una nota a help.github.com/pages.


6
Il repository delle tue pagine deve essere pubblico affinché le pagine GitHub funzionino?
Dennis,

34
@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 collaboratori di quel repository privato di vederle.
Merlyn Morgan-Graham,

6
FYI può essere visto MOLTO CHIARAMENTE qui
Derek Adair

//, Il controllo degli accessi è un problema molto interessante per Github. Mi piace che questo stia attirando l'attenzione, @kashyap! Grazie.
Nathan Basanese,

Aggiunta ai commenti @Derek Adair sopra. Il sito dice: "Avvertenza: i siti di GitHub Pages sono disponibili pubblicamente su Internet, anche se i loro repository sono privati. Se hai dei dati sensibili nel tuo repository Page, potresti volerli rimuovere prima della pubblicazione."
Jay Killeen,

62

Secondo la documentazione di GitHub Pages :

Tutti i repository di progetto sono pronti per utilizzare il generatore per la pubblicazione. Tuttavia, tieni presente che i repository privati ​​pubblicheranno pagine pubbliche.

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

MODIFICARE:

Una soluzione semplice

Una soluzione alternativa per alcune situazioni che potrebbero essere utili è semplicemente rinominare il repository in qualcosa di diverso dal formato di pagine GitHub mentre si desidera che sia privato (ad esempio in una fase di sviluppo) e quando si è pronti a 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 vero Auth Wrapper per Jekyll (pagine GitHub)

In alternativa, esiste un progetto chiamato Jekyll Auth che GitHubber @benbalter ha realizzato per tale uso. Jekyll Auth fornisce un wrapper di autenticazione di base per i progetti jekyll, comprese le pagine GitHub. Vedere il README del repository per l'uso.


1
Sembra che il primo link sia vecchio. help.github.com/articles/what-is-github-pages ora ha un avviso simile.
radicaledward101,

14

La pagina.github.com menziona:

Le pagine Github sono ospitate gratuitamente e pubblicate facilmente attraverso il nostro sito,

Senza mai menzionare il controllo degli accessi.

La guida della pagina GitHub non menziona neanche ACL.
Sono gestiti al meglio in un ramo gh-pages e possono essere gestiti nel proprio sottomodulo .
Ma ancora una volta, senza alcuna limitazione in termini di visibilità, una volta pubblicato da GitHub.


14
Infatti. Tutte le pagine sono pubbliche. Ho ricevuto una risposta (su un ticket di supporto) da Github confermando questo.
kashyap,

13

Molte risposte sono obsolete (acquisizione pre-Microsoft / repository privati ​​gratuiti). Questo è stato scritto dopo l'annuncio di repository privati gratuiti .

Le pagine Github non sono disponibili sui repository privati ​​gratuiti per le persone, come mostrato nelle impostazioni dei repository:

inserisci qui la descrizione dell'immagine

2020 (il piano più base è ora "Team"):

passa al team di github o rendi pubblico questo repository per abilitare Pages


5
Questo è un peccato. La pubblicità con campane e fischietta la disponibilità gratuita di repository privati ​​ma li riducono massicciamente in funzionalità.
Robert Estivill,

9

C'è un articolo con un'idea funzionante su come richiedere l'autorizzazione oAuth prima di caricare dinamicamente il contenuto statico:

Protezione del sito che viene eseguito su pagine Github con back-end JSON nel repository privato

Il contenuto deve essere archiviato in un repository GitHub segreto con un visualizzatore che ha accesso in lettura ad esso. Le pagine GitHub memorizzano solo il codice JS di servizio.


Questo è molto meglio dell'uso di hasdocs, perché non è necessario concedere l'autorizzazione al repository ad app di terze parti non attendibile.
Tommz,

8

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

Ho finito per creare un servizio https://www.privatehub.cloud È fondamentalmente un semplice server proxy con autenticazione Github OAuth, quindi restituisce semplicemente il contenuto del tuo repository GitHub con un tipo MIME appropriato. In base alla progettazione, solo chi ha accesso foosarà in grado di vedere i foocontenuti all'indirizzo https://bar-foo.privatehub.cloud. Dal punto di vista funzionale, puoi pensarlo come una pagina GitHub semplificata con autenticazione integrata.

Sfortunatamente, Github OAuth non consente di richiedere l' read-onlyaccesso ai repository privati, quindi il server ha bisogno dell'accesso completo (ovviamente, non scrive nulla nel tuo repository). Poiché l'API GitHub consente di recuperare file di solo 1 Mb, il servizio non può restituire file di dimensioni maggiori. Tuttavia, ho scoperto che il servizio è abbastanza adatto a piccoli progetti per la documentazione interna o la versione di gestione temporanea di un sito Web.


1
Nota: questo servizio ora è morto (o potenzialmente temporaneamente bloccato)
Jason Axelson,

1

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


1
Il metodo .htaccess non funziona. Se ci sono suggerimenti utili fammi sapere :)
Rohde Fischer

Neanche io ho trovato niente. Immagino che questo problema sia chiuso per ora.
kashyap,


-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.

Dimostrazione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.