コンテンツにスキップ

付録 GitHub Packages / GitHub Pages

本編で扱いきれなかった GitHub の便利な機能を、付録としてまとめます。
どちらも直接コードを書く機能ではありませんが、管理者として把握しておくと活用の幅が広がります 📦


GitHub Packages は、GitHub に統合されたパッケージレジストリです。
npm、Docker、Maven、NuGet などのパッケージを GitHub 上でホスティングできます。

flowchart LR
    DEV["👨‍💻 開発者"] -- "パッケージを
publish" --> GP["📦 GitHub Packages"] GP -- "パッケージを
install" --> APP["🖥️ アプリケーション"] GP -- "Docker イメージを
pull" --> CI["⚙️ CI/CD"] style GP fill:#F3E5F5,stroke:#8E24AA,color:#4A148C style DEV fill:#E3F2FD,stroke:#1E88E5,color:#0D47A1
レジストリパッケージ種別使用例
npmJavaScript / TypeScript社内共有ライブラリ
Container registryDocker イメージアプリケーションのコンテナ
MavenJavaSpring Boot ライブラリ
GradleJava / KotlinAndroid ライブラリ
NuGet.NETC# ライブラリ
RubyGemsRubyRails プラグイン
package.json
{
"name": "@your-org/shared-utils",
"version": "1.0.0",
"publishConfig": {
"registry": "https://npm.pkg.github.com"
}
}
Terminal window
# 認証設定
echo "//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}" >> .npmrc
# パッケージの公開
npm publish
Terminal window
# 他のプロジェクトでインストール
echo "@your-org:registry=https://npm.pkg.github.com" >> .npmrc
npm install @your-org/shared-utils
Terminal window
# ログイン
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
# ビルド & タグ付け
docker build -t ghcr.io/your-org/web-app:latest .
# プッシュ
docker push ghcr.io/your-org/web-app:latest
.github/workflows/publish-package.yml
name: Publish Package
on:
release:
types: [published]
permissions:
packages: write
contents: read
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
registry-url: "https://npm.pkg.github.com"
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

GitHub Pages は、リポジトリから直接 静的サイト をホスティングできる機能です。
ドキュメントサイト、ポートフォリオ、ブログなどを無料で公開できます。

flowchart LR
    REPO["📁 リポジトリ
(HTML / Markdown)"] GP["🌐 GitHub Pages"] USER["👤 閲覧者"] REPO -- "push / merge" --> GP -- "https://your-org.github.io" --> USER style REPO fill:#E3F2FD,stroke:#1E88E5,color:#0D47A1 style GP fill:#E8F5E9,stroke:#43A047,color:#1B5E20
ソース説明
ブランチ指定特定ブランチの特定ディレクトリ(/ or /docs)を公開
GitHub Actionsワークフローでビルドしたファイルを公開(推奨)

Settings → Pages → Source で 「GitHub Actions」 を選択します。

.github/workflows/deploy-pages.yml
name: Deploy to GitHub Pages
on:
push:
branches: [main]
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: "20", cache: "npm" }
- run: npm ci
- run: npm run build
- uses: actions/upload-pages-artifact@v3
with:
path: ./dist
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- id: deployment
uses: actions/deploy-pages@v4
用途ツール例
技術ドキュメントStarlight (Astro) / Docusaurus / VitePress
API ドキュメントSwagger UI / Redoc
スタイルガイドStorybook
チームポータル社内ルールやオンボーディング資料
リリースノート自動生成したチェンジログ
プランPublic PagesPrivate Pages
Free
Pro / Team
Enterprise

おつかれさまでした! 全10章+付録をとおして、
Git の基礎操作から GitHub の Organization 管理まで幅広く学んできました。

flowchart TD
    subgraph "Git の基礎〜応用"
        C1["第1章
Gitの基礎操作"] C2["第2章
設定と関連ファイル"] C3["第3章
高度な機能"] C4["第4章
ブランチ戦略"] end subgraph "セキュリティ" C5["第5章
認証とセキュリティ"] C8["第8章
コードセキュリティ"] end subgraph "GitHub の管理" C6["第6章
リポジトリ管理"] C7["第7章
GitHub Actions"] C9["第9章
Organization管理"] C10["第10章
GitHub CLI"] end C1 --> C2 --> C3 --> C4 C4 --> C5 C5 --> C6 --> C7 --> C8 --> C9 --> C10 style C1 fill:#E8F5E9,stroke:#43A047,color:#1B5E20 style C5 fill:#FFEBEE,stroke:#E53935,color:#B71C1C style C8 fill:#FFEBEE,stroke:#E53935,color:#B71C1C style C6 fill:#E3F2FD,stroke:#1E88E5,color:#0D47A1 style C7 fill:#E3F2FD,stroke:#1E88E5,color:#0D47A1 style C9 fill:#E3F2FD,stroke:#1E88E5,color:#0D47A1 style C10 fill:#E3F2FD,stroke:#1E88E5,color:#0D47A1

管理者として日常的にやること

Section titled “管理者として日常的にやること”
頻度タスク
毎日Dependabot Alert の確認、PR レビュー
毎週Actions の実行状況確認、ブランチの整理
毎月Audit Log の監査、権限の棚卸し
四半期ブランチ戦略の見直し、セキュリティポリシーの更新
随時メンバーのオンボーディング、ドキュメントの更新
リソースURL
Git 公式ドキュメントhttps://git-scm.com/doc
Pro Git Book(無料)https://git-scm.com/book/ja/v2
GitHub Docs(日本語)https://docs.github.com/ja
GitHub CLI マニュアルhttps://cli.github.com/manual/
GitHub Actions ドキュメントhttps://docs.github.com/ja/actions
Conventional Commitshttps://www.conventionalcommits.org/ja/
Semantic Versioninghttps://semver.org/lang/ja/