集合知プラットフォーム事業部の榎本です。筋トレのお供のプロテインが切れそうなので、次に購入するプロテインのメーカーとフレーバーに悩んでます。
GitHub Pages でアクセス制限
今まで GitHub Pages というと静的サイトをインターネットへ全世界公開するしかできなかったのですが、2021年に Private GitHub Pages の機能がリリースされ、限定されたユーザーのみに制限してページを公開することが可能になりました。
GitHub Pages を使って社内のドキュメントやナレッジを特定のユーザーだけに公開したり、企業内だけで共有したりすることができます。…(中略)… 今回の変更で、PrivateとInternalリポジトリでは、Private Pagesを使うことで、そのリポジトリを見れる人だけがそこから生成されるPagesのサイトを見られるという設定を行えるようになりました。
GitHub Pagesのアクセス管理 - GitHubブログ
今日は Private な GitHub Pages により社内ドキュメントをカジュアルに公開できるようになって捗りました、という話を紹介したいと思います。
Private GitHub Pages設定方法
Private GitHub Pages の設定方法は簡単です。下記のGitHub公式ドキュメント通りに進めれば OK です。
Changing the visibility of your GitHub Pages site - GitHub Docs
設定手順のサマリとしては下記の通りです。
- リポジトリTOPへ
- Settings (リポジトリ設定画面)へ
- 左メニューから Pages を選択
- GitHub Pages visibility で "Private" を選択
公開されるページのURL
下記のようなURLが GitHub 側で自動で生成され、 Private GitHub Pages としてアクセス可能になります。
https://xxx.pages.github.io/
一度発行されたURLは(設定を変えない限りは)基本的に変わらないようですので、安心して使えます。また、閲覧権限のない Private GitHub Pages にアクセスした場合は、 Unauthorized access error
メッセージが表示されます。
(わかりやすい Custom Domain をページに割り当ててもよいかと思います。私のチームでは開発者向けの社内ドキュメントだしそのままでいいか、ということでGitHubから自動で割り当てられたURLをそのまま使用しました)
GitHub Pages の運用について
GitHub Pages の運用方法にはいくつか流派があります。
- GitHub Pages 用のブランチ(
gh-pages
ブランチ)を用意してページを公開 main
/master
ブランチにdocs
ディレクトリを用意してページ公開
私のチームの場合、わざわざ公開用のブランチを用意して運用するのも手間がかかりそうだったので、後者の docs ディレクトリに html を放り込んで公開するかたちにしています。
Advanced な使用例として、peaceiris/actions-gh-pages みたいなものを使って、静的ページの生成および公開を自動化するのも良いでしょう。
使用例
実際の使用例を紹介したいと思います。私のチームでは下記のドキュメントを開発者向けドキュメントとして公開しています。
OpenAPI を redoc でhtml化した API ドキュメントを公開
APIの仕様などについて話すときや、Pull Request からAPI仕様について言及するときなどに、GitHub Pages の URL で該当部分の仕様を参照できて便利でした。
Vue.js のコンポーネントをまとめた Storybook を公開
新しいページ追加のときに、既存のコンポーネントをStorybookのページから簡単に参照できて便利でした。
注意点
- 無料プランでは Private GitHub Pages の機能は利用はできません
- 個人利用であればGitHub Pro, Organization利用であればGitHub Team以上の契約が必要
- Private GitHub Pages 閲覧のためには、GitHub アカウントで認証を通している関係上、GitHubユーザー登録およびOrganizationへの登録が必要
- ドキュメントを全社員が閲覧できる形で公開するのは、GitHub の金銭コスト増、アカウント管理コスト増につながりなかなか辛いかも
- コストを抑えたいなら開発者ドキュメントのみ Private GitHub Pages に公開すると良さそう
- Private リポジトリであっても GitHub Pages の設定を Public にすると全世界公開されるので気をつけましょう
まとめ
Private GitHub Pages 登場前は静的サイトを社内だけに公開しようにも、自前で S3 を用意したり認証の仕組みを用意したりと、なかなか骨が折れることが多かったように思います。しかし Private GitHub Pages が登場したことで、社内向けのinternalな静的ページ・ドキュメントであればカジュアルに公開可能になりました。
みなさんも社内ドキュメントを Private GitHub Pages で公開して、ナイスな開発体験を手に入れてみてはいかがでしょうか。
メドピアでは一緒に働く仲間を募集しています。 ご応募をお待ちしております!
■募集ポジションはこちら
https://medpeer.co.jp/recruit/entry/
■開発環境はこちら