コンテンツにスキップ

GitHub PagesはPrivate Repositoryで使える?公開条件と限定公開の違い【2026】

対象 / ポイント

対象: GitHub Pagesのソースを非公開にしたい人、またはサイトを関係者だけに公開したい人。

ポイント:

  • 個人アカウントではGitHub Pro、組織ではGitHub Team以上で非公開リポジトリを公開元にできる
  • 非公開リポジトリから作っても、通常のPagesサイトはインターネットに公開される
  • サイト自体の限定公開にはGitHub Enterprise Cloudの組織とPagesアクセス制御が必要となる

結論:リポジトリの非公開とサイトの限定公開は別機能

GitHub Pagesでは、ソースリポジトリの可視性公開サイトの可視性を 分けて考える必要がある。非公開リポジトリからPagesを生成できても、 サイトまで自動的に非公開になるわけではない。12

実現したいこと必要な条件サイトの可視性
公開リポジトリからサイトを公開GitHub Free以上公開
個人の非公開リポジトリからサイトを公開GitHub Pro以上原則公開
組織の非公開リポジトリからサイトを公開GitHub Team以上原則公開
組織内の関係者だけに公開GitHub Enterprise Cloudの組織とPagesアクセス制御非公開

GitHub.com上の一般的なブログやドキュメントなら、 「ソースは非公開、完成したサイトは公開」という構成が現実的だ。 社内文書など閲覧者も制限したい用途では、Enterprise Cloudの限定公開条件を確認するか、 認証機能を持つ別のホスティングを選ぶ。

プラン別の利用条件

GitHub公式のプラン説明では、GitHub FreeのPagesは公開リポジトリが対象となる。 GitHub Proは個人アカウントの非公開リポジトリ、GitHub Teamは組織の 非公開リポジトリからのPages公開に対応する。1

所有者プラン非公開リポジトリを公開元にできるか
個人GitHub Freeできない
個人GitHub Proできる
組織GitHub Free for organizationsできない
組織GitHub Teamできる
組織GitHub Enterprise Cloudできる。条件を満たすプロジェクトサイトではアクセス制御も可能

料金は変更される可能性があるため、契約前にGitHubのプラン比較で確認する。

非公開リポジトリから公開する手順

1. 所有者とプランを確認する

対象リポジトリが個人所有か組織所有かを確認し、個人ならPro以上、組織ならTeam以上を利用する。 プランを下げて条件を満たさなくなると、Pagesサイトは非公開化ではなく 公開停止になる場合がある。3

2. 公開元を設定する

リポジトリの Settings → Pages を開き、Build and deployment で公開方法を選ぶ。GitHub Pagesは次の公開元に対応する。2

  • ブランチのルート(/)または /docs フォルダ
  • GitHub Actionsのワークフロー

静的HTMLをそのまま置くならブランチ公開、MkDocsなどのビルドが必要なら GitHub Actionsを使うと管理しやすい。具体的な設定は GitHub PagesでMkDocsサイトを公開する手順を参照。

3. 公開URLと可視性を確認する

デプロイ完了後、Settings → Pages に表示されるURLをログアウト状態または プライベートブラウズで開く。非公開リポジトリを使っていても閲覧できるなら、 通常の公開Pagesサイトとして正しい動作だ。

限定公開が必要な場合は、Enterprise Cloud組織が所有する非公開または内部リポジトリの プロジェクトサイトでアクセス制御を設定する。組織サイトではこのアクセス制御を 利用できない。4

セキュリティ上の注意

ビルド成果物に秘密情報を含めない

非公開リポジトリのファイルがそのまま公開されなくても、生成されたHTML、JavaScript、ソースマップ、画像などは公開サイトの閲覧者から取得できる。次の情報をビルド成果物へ埋め込んではならない。

  • APIキー、アクセストークン、パスワード
  • 社内URLや顧客情報
  • 公開を想定していないソースマップや設定値

GitHubも、Pagesサイトはインターネット上で公開されるため機密データを削除するよう案内している。2

JavaScriptだけのパスワード保護は使わない

ブラウザ内のJavaScriptでパスワードを照合する方法では、判定コードや保護対象ファイルを 利用者が取得できる。実用的なアクセス制御にはならない。限定公開が必要なら、 GitHubのPagesアクセス制御、または認証を提供するホスティングやゲートウェイを使う。

カスタムドメインを設定する

Settings → Pages → Custom domain にドメインを入力し、DNS側に GitHub Pages向けのレコードを設定する。DNS設定後は Enforce HTTPS を有効にする。 ドメインの乗っ取りリスクを減らすため、GitHubでドメインを事前に検証することも 推奨されている。35

設定例やDNS切り替えの考え方は、 GitHub PagesとCloudflareで無料ホスティングする方法も参考になる。

よくあるトラブル

非公開リポジトリに変更したら404になった

現在のアカウントまたは組織プランが、非公開リポジトリからのPages公開に対応しているか確認する。GitHub Freeでは公開元を非公開にしたまま公開できない。

Actionsは成功したがサイトが更新されない

Settings → Pages で公開元がGitHub Actionsになっているか、対象ワークフローが Pagesへデプロイしているかを確認する。複数サイトを管理する場合は 複数のGitHub Pagesを運用する方法も参照。

非公開リポジトリなのに誰でも閲覧できる

通常のPagesサイトでは仕様どおりだ。リポジトリの非公開設定はソースへのアクセスを制限するもので、公開サイトへの認証を追加するものではない。

まとめ

ソースだけを隠したい場合は、個人ならGitHub Pro、組織ならGitHub Team以上で 非公開リポジトリからPagesを公開できる。一方、閲覧者も限定したい場合は GitHub Enterprise Cloud組織のPagesアクセス制御が必要となる。

最初に「隠したいのはソースか、完成したサイトか」を決めれば、必要なプランと構成を 誤りにくい。自動デプロイまで整える場合は GitHub PagesとMkDocsの自動化ガイドへ進む。

関連記事

参考資料