Pages privées pour un dépôt Github privé

244

Impossible de trouver quoi que ce soit dans la documentation de github et également ici sur SO. Mais je me demandais s'il pouvait y avoir un http://foo.github.comréférentiel privé nommé fooqui est accessible, un seul avait accès au fooréférentiel lui-même.

Je me souviens d'avoir lu quelque chose sur les pages github toujours publiques mais je n'arrive plus à trouver ça.

Et étonnamment, je n'arrive pas à trouver quelqu'un d'autre posant la question non plus.

kashyap
la source
2
Je suppose que peu de gens utilisent Github pour héberger des dépôts privés. Ou du moins, très peu d'entre eux utilisent des pages gh.
Siddhartha Reddy
Je pense que la bonne réponse devrait maintenant être stackoverflow.com/a/54340540/1168342
Fuhrmanator

Réponses:

219

J'avais soulevé un ticket de support contre Github et obtenu une réponse confirmant le fait que TOUTES les pages sont publiques. Je leur ai maintenant demandé d'ajouter une note à help.github.com/pages.

kashyap
la source
6
Votre dépôt de pages doit-il être public pour que les pages GitHub fonctionnent?
Dennis
34
@Dennis: Non, ce n'est pas le cas - votre dépôt peut être privé. Mais les pages publiées seront publiques et GitHub n'a pas de moyen intégré de restreindre l'accès aux vues pour permettre uniquement aux contributeurs de ce référentiel privé de les voir.
Merlyn Morgan-Graham
6
Pour info, on peut le voir TRÈS CLAIREMENT ici
Derek Adair
//, Le contrôle d'accès est un problème très intéressant pour Github. J'aime que cela attire l'attention, @kashyap! Merci.
Nathan Basanese
Ajout aux commentaires @Derek Adair ci-dessus. Le site dit: "Avertissement: les sites GitHub Pages sont accessibles au public sur Internet, même si leurs référentiels sont privés. Si vous avez des données sensibles dans votre référentiel de pages, vous pouvez les supprimer avant la publication."
Jay Killeen
62

Selon la documentation des pages GitHub :

Tous les référentiels de projets sont prêts à utiliser le générateur pour la publication. Cependant, veuillez noter que les référentiels privés publieront des pages publiques.

Donc non, pour le moment, il n'y a aucun moyen de créer des pages GitHub privées à partir d'un référentiel GitHub privé.

ÉDITER:

Une solution simple

Une solution de contournement pour certaines situations qui pourrait être utile consiste simplement à renommer le référentiel en quelque chose d'autre que le format des pages GitHub pendant que vous le souhaitez qu'il soit privé (par exemple dans une phase de développement) et lorsqu'il est prêt à le rendre public, puis corrigez le nom. Évidemment, cela n'aide toujours pas si vous cherchez un moyen de publier des pages qui ont une authentification, mais si vous voulez simplement masquer un projet de pages GH pendant qu'il est en cours, cela pourrait aider.

Un véritable Auth Wrapper pour Jekyll (pages GitHub)

Alternativement, il existe un projet appelé Jekyll Auth que GitHubber @benbalter a conçu pour une telle utilisation. Jekyll Auth fournit un wrapper d'authentification de base pour les projets jekyll, y compris les pages GitHub. Voir le README du dépôt pour l'utilisation.

Joel Glovier
la source
1
Il semble que le premier lien soit ancien. help.github.com/articles/what-is-github-pages a désormais un avertissement similaire.
radicaledward101
14

La page.github.com mentionne:

Les pages Github sont hébergées gratuitement et facilement publiées sur notre site,

Sans jamais mentionner le contrôle d'accès.

L' aide de la page GitHub ne mentionne pas non plus d'ACL.
Ils sont mieux gérés dans une branche gh-pages et peuvent être gérés dans leur propre sous-module .
Mais encore une fois, sans aucune restriction en terme de visibilité une fois publié par GitHub.

VonC
la source
14
En effet. Toutes les pages sont publiques. J'ai reçu une réponse (sur un ticket d'assistance) de github confirmant cela.
kashyap
13

De nombreuses réponses sont obsolètes (acquisition pré-Microsoft / dépôts privés gratuits). Celui-ci a été écrit après l'annonce des repos privés gratuits .

Les pages Github ne sont pas disponibles sur les dépôts privés gratuits pour les particuliers, comme indiqué dans les paramètres de dépôt:

entrez la description de l'image ici

2020 (le plan le plus élémentaire est désormais "Team"):

mettre à niveau vers l'équipe github ou rendre ce référentiel public pour activer Pages

Corey
la source
5
C'est une déception. La publicité avec des cloches et des sifflets la disponibilité gratuite des dépôts privés, mais ils les ont massivement réduites en fonctionnalités.
Robert Estivill
9

Il y a un article avec une idée de travail sur la façon de demander l'autorisation oAuth avant de charger dynamiquement du contenu statique:

Sécurisation d'un site qui s'exécute sur des pages Github avec un backend JSON dans un référentiel privé

Le contenu doit être stocké dans un référentiel GitHub secret avec une visionneuse y ayant accès en lecture. Les pages GitHub stockent uniquement le code JS en service.

TautrimasPajarskas
la source
C'est bien mieux que d'utiliser des hasdocs, car vous n'avez pas besoin d'autoriser votre dépôt à une application tierce non approuvée.
Tommz
8

Comme indiqué ci-dessus, les pages Github ne prennent pas en charge cette fonctionnalité. J'ai eu le même problème lorsque notre équipe a décidé d'héberger la documentation du projet (HTML statique) en interne et en privé.

J'ai fini par créer un service https://www.privatehub.cloud Il s'agit essentiellement d'un simple serveur proxy avec authentification Github OAuth, il renvoie donc simplement le contenu de votre référentiel GitHub avec un type MIME approprié. De par leur conception, seuls ceux qui y ont accès foopourront voir le foocontenu sur https://bar-foo.privatehub.cloud. Du point de vue fonctionnel, vous pouvez le considérer comme une page GitHub simplifiée avec authentification intégrée.

Malheureusement, Github OAuth ne permet pas de demander l' read-onlyaccès aux dépôts privés, donc le serveur a besoin de l'accès complet (évidemment, il n'écrit rien dans votre référentiel). Comme l'API GitHub permet de récupérer des fichiers de moins de 1 Mo uniquement, le service ne peut pas renvoyer de fichiers plus volumineux. Pourtant, j'ai trouvé que le service est tout à fait adapté aux petits projets de documentation interne ou de mise en scène d'un site Web.

grieg
la source
1
Remarque: ce service est maintenant mort (ou potentiellement temporairement bloqué)
Jason Axelson
1

Si vous appuyez sur admin sur un dépôt privé et faites défiler jusqu'à la partie sur les pages, il est écrit que ce sera public. Je vérifierai plus tard si le contrôle .htaccess ou similaire est possible, mais je n'ai pas beaucoup d'espoir.

Rohde Fischer
la source
1
La méthode .htaccess ne fonctionne pas. S'il y a des suggestions utiles, faites-le moi savoir :)
Rohde Fischer
Je n'ai rien trouvé non plus. Je suppose que ce problème est clos pour l'instant.
kashyap
0

vous pouvez utiliser GitLab . vous pouvez définir des projets privés et toutes les installations sont comme Github.

mohammad asghari
la source
Les pages privées ne sont pas encore tout à fait disponibles sur le site principal de GitLab (uniquement en copies locales) ... peut-être d'ici la mi-mai 2019 (voir < gitlab.com/gitlab-com/gl-infra/infrastructure/issues/5576> ).
rivy
-3

Vous pouvez héberger un mot de passe dans un référentiel, puis masquer la page derrière une adresse cachée, dérivée de ce mot de passe. Ce n'est pas un moyen très sûr, mais c'est simple.

Manifestation

Ozbolt
la source