GithubPages について
GithubPages は、GitHub Pages サイトの設定、デプロイ、トラブルシューティングを支援するスキルです。ドメイン、Jekyll、カスタムビルド、公開のワークフローを案内します。
主な機能
- 01サイト設定と公開のガイド
- 02カスタムドメインと DNS 設定
- 03Jekyll のテーマと設定
- 04GitHub Actions のビルドワークフロー
- 05デプロイのトラブルシューティング
活用シーン
- 01ユーザーサイトやプロジェクトサイトの作成
- 02カスタムドメインの接続
- 03カスタムビルドでのサイト公開
- 04公開や HTTPS の問題の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill githubpagesインストール後、Claude Code で/githubpagesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/ActionsWorkflows.mdBestPractices.mdDnsConfiguration.mdJekyllConfiguration.mdTroubleshooting.mdscripts/check-site-status.shverify-dns.shworkflows/ActionsWorkflow.mdCustomDomain.mdDeploy.mdJekyllSetup.mdQuickStart.mdTroubleshoot.md詳細
GitHub Pages スキル
GitHub Pages サイトのデプロイ、設定、管理に関する完全ガイドです。
クイックリファレンス
| サイトの種類 | リポジトリ名 | URL の形式 |
|---|---|---|
| ユーザー/組織サイト | <username>.github.io | https://<username>.github.io |
| プロジェクトサイト | 任意のリポジトリ名 | https://<username>.github.io/<repo> |
利用条件:
- パブリックリポジトリ:GitHub Free(すべてのプラン)
- プライベートリポジトリ:GitHub Pro、Team、Enterprise
ワークフローの振り分け
ワークフローを実行するときは、次の通知を直接出力してください:
Running the **WorkflowName** workflow from the **GithubPages** skill...
| ワークフロー | トリガー | ファイル |
|---|---|---|
| QuickStart | 「GitHub Pages を設定」「Pages サイトを作成」 | workflows/QuickStart.md |
| CustomDomain | 「カスタムドメインを追加」「ドメインを設定」 | workflows/CustomDomain.md |
| JekyllSetup | 「Jekyll を設定」「Jekyll テーマを追加」 | workflows/JekyllSetup.md |
| ActionsWorkflow | 「カスタムビルド」「Pages 用 GitHub Actions」 | workflows/ActionsWorkflow.md |
| Troubleshoot | 「Pages が動作しない」「GitHub Pages を修正」 | workflows/Troubleshoot.md |
| Deploy | 「GitHub Pages にデプロイ」「サイトを公開」 | workflows/Deploy.md |
例
例 1:新しい GitHub Pages サイトを作成する
User: "Setup GitHub Pages for my project"
→ Invokes QuickStart workflow
→ Checks if user/org or project site
→ Configures publishing source (branch or Actions)
→ Creates initial content structure
→ Verifies deployment
例 2:カスタムドメインを追加する
User: "Add my domain example.com to GitHub Pages"
→ Invokes CustomDomain workflow
→ Determines domain type (apex vs subdomain)
→ Provides DNS configuration instructions
→ Adds CNAME file or configures via Settings
→ Enables HTTPS enforcement
例 3:Jekyll テーマを設定する
User: "Add a theme to my GitHub Pages site"
→ Invokes JekyllSetup workflow
→ Lists available supported themes
→ Configures _config.yml
→ Sets up custom CSS/layouts if needed
例 4:カスタムビルドでデプロイする
User: "Deploy my Next.js site to GitHub Pages"
→ Invokes ActionsWorkflow workflow
→ Creates custom GitHub Actions workflow
→ Configures build process
→ Sets up artifact deployment
サイトの種類
ユーザー/組織サイト
要件:
- リポジトリ名は
<username>.github.ioでなければなりません - アカウントごとに 1 つのみです
- デフォルトブランチから公開されます
設定:
# Create repository named exactly: username.github.io
# Enable Pages in Settings > Pages
# Select source branch
プロジェクトサイト
要件:
- 任意のリポジトリを使用できます
- 複数のプロジェクトサイトを作成できます
- URL にリポジトリ名が含まれます
設定:
# Any repository works
# Enable Pages in Settings > Pages
# Choose: branch (root or /docs) OR GitHub Actions
公開元
オプション 1:ブランチからデプロイする
おすすめ: Jekyll サイト、シンプルな静的サイト
設定:
- Settings > Pages に移動します
- 「Deploy from a branch」を選択します
- ブランチ(main、gh-pages など)を選択します
- フォルダーとして
/(ルート)または/docsを選択します
動作:
- ブランチへのプッシュをトリガーにビルドが自動的に実行されます
- デフォルトで Jekyll が Markdown を処理します
- カスタムドメイン用の CNAME ファイルが自動的に作成されます
オプション 2:GitHub Actions ワークフロー
おすすめ: カスタムビルド、Jekyll 以外のジェネレーター
設定:
- Settings > Pages に移動します
- 「GitHub Actions」を選択します
.github/workflows/にワークフローファイルを作成します
動作:
- ビルドプロセスを完全に制御できます
- Hugo、Gatsby、Next.js などで動作します
- アーティファクトがアップロードされ、デプロイされます
Jekyll との統合
自動で有効になるプラグイン
これらのプラグインは GitHub Pages で自動的に動作します。
| プラグイン | 目的 |
|---|---|
| jekyll-coffeescript | CoffeeScript のサポート |
| jekyll-default-layout | レイアウトの自動設定 |
| jekyll-gist | GitHub Gist の埋め込み |
| jekyll-github-metadata | リポジトリのメタデータ |
| jekyll-optional-front-matter | YAML フロントマターの省略可能化 |
| jekyll-paginate | ページネーション |
| jekyll-readme-index | README をインデックスとして使用 |
| jekyll-titles-from-headings | タイトルの自動生成 |
| jekyll-relative-links | 相対リンクの変換 |
対応テーマ
追加の設定なしで利用できます。
- Architect
- Cayman
- Dinky
- Hacker
- Leap day
- Merlot
- Midnight
- Minima
- Minimal
- Modernist
- Slate
- Tactile
- Time machine
_config.yml での使用方法:
theme: jekyll-theme-minimal
title: My Site
description: Site description
リモートテーマ
GitHub の任意の Jekyll テーマを使用できます。
remote_theme: owner/repo-name
カスタムドメイン
ドメインの種類
| 種類 | 例 | DNS レコード |
|---|---|---|
| エイペックス | example.com | A または ALIAS |
| WWW サブドメイン | www.example.com | CNAME |
| カスタムサブドメイン | blog.example.com | CNAME |
DNS の設定
エイペックスドメインの場合(A レコード):
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
エイペックスドメインの場合(AAAA レコード - IPv6):
2606:50c0:8000::153
2606:50c0:8001::153
2606:50c0:8002::153
2606:50c0:8003::153
サブドメインの場合(CNAME レコード):
www.example.com → username.github.io
blog.example.com → username.github.io
確認用コマンド
# Check A records
dig example.com +noall +answer -t A
# Check AAAA records
dig example.com +noall +answer -t AAAA
# Check CNAME records
dig www.example.com +nostats +nocomments +nocmd
使用制限
| リソース | 制限 |
|---|---|
| リポジトリサイズ | 1 GB(推奨) |
| 公開サイトのサイズ | 1 GB(最大) |
| 帯域幅 | 100 GB/月(ソフト制限) |
| ビルド | 10回/時間(ソフト制限、ブランチのみ) |
| デプロイのタイムアウト | 10分 |
制限事項:
- サーバーサイド言語(PHP、Python、Ruby)は使用できません
- 商取引や電子商取引は禁止されています
- GitHub 利用規約を遵守する必要があります
セキュリティのベストプラクティス
- カスタムドメインを検証する - ドメイン乗っ取り攻撃を防ぎます
- ワイルドカード DNS を避ける -
*.example.comはセキュリティリスクを生みます - HTTPS を有効にする - 証明書の発行後は、常に HTTPS を強制します
- シークレットを公開しない - プライベートリポジトリからでも、公開サイトにはアクセスできます
- DNS を速やかに更新する - サイトを無効にする場合は、DNS レコードを更新または削除します
よくある問題と解決策
| 問題 | 解決策 |
|---|---|
| サイトが公開されない | ブランチ/フォルダーの設定を確認し、エントリーファイルが存在することを確認します |
| 404 エラー | ルートに index.html、index.md、または README.md があることを確認します |
| カスタムドメインが機能しない | DNS の伝播に 24 時間待ち、dig でレコードを確認します |
| HTTPS を利用できない | DNS の検証後、最大 1 時間待ちます |
| 混在コンテンツの警告 | すべてのアセットで http:// を https:// に変更します |
| ビルドの失敗 | Actions タブでエラーログを確認します |
ファイル参照
| トピック | 参照ファイル |
|---|---|
| DNS の設定 | references/DnsConfiguration.md |
| Jekyll の設定 | references/JekyllConfiguration.md |
| Actions ワークフロー | references/ActionsWorkflows.md |
| トラブルシューティングガイド | references/Troubleshooting.md |
| ベストプラクティス | references/BestPractices.md |
スクリプト
| スクリプト | 目的 |
|---|---|
scripts/verify-dns.sh | カスタムドメインの DNS 設定を検証します |
scripts/check-site-status.sh | GitHub Pages サイトが公開されているか確認します |
外部ドキュメント
コメント
Markdown 対応