注意:このコンテンツは自動翻訳されたものです。 フィードバックを送る

ライブ Changelog

GitHub Actions を通じて各コミット後に自動更新される changelog ページ。Conventional commits を解析し、開発履歴を表示します。

Role: 開発者2025年12月

Git のコミット履歴から抽出された、詳細な開発タイムライン。このページは main ブランチへの push ごとに自動更新されます。

更新履歴を読み込み中...

仕組み

changelog は以下の GitHub Actions workflow を使用します:

  1. push で実行main への各 push で workflow が実行されます
  2. git 履歴を解析 — コミットハッシュ、作成者、日付、メッセージを抽出
  3. コミットを分類 — conventional commit タイプを検出(feat、fix、chore など)
  4. JSON データを更新data/changelog.json に書き込み
  5. 変更をコミット[skip ci] を使用して無限ループを防止

Tech Stack

コンポーネント技術目的
自動化GitHub Actionsmain への push で実行
スクリプトTypeScript + tsxgit log を解析して JSON を生成
データJSONコミットデータを保存
レンダリングNext.js Server Componentロケール対応の動的ページ
i18nnext-intlロケール対応の日付フォーマット

Conventional Commit の解析

スクリプトは標準的な conventional commit プレフィックスを認識します:

  • feat: — 新機能
  • fix: — バグ修正
  • chore: — メンテナンスタスク
  • docs: — ドキュメント更新
  • refactor: — コードリファクタリング
  • style: — スタイル変更
  • test: — テスト更新
  • perf: — パフォーマンス改善

コミットは自動的に分類され、統計が計算されます。

ループ防止

GitHub Action は以下の方法で無限ループを回避します:

  1. コミットメッセージに [skip ci] を追加
  2. workflow で if: "!contains(github.event.head_commit.message, '[skip ci]')" をチェック

ファイル

.github/workflows/update-changelog.yml  # GitHub Action
scripts/generate-changelog.ts           # 生成スクリプト
data/changelog.json                     # 生成されたデータ
lib/types/changelog.ts                  # TypeScript 型定義
app/[locale]/changelog/page.tsx         # ページコンポーネント
components/changelog-stats.tsx          # 統計コンポーネント
components/changelog-table.tsx          # テーブルコンポーネント

Outcomes

  • main への push ごとに GitHub Actions workflow が実行
  • Conventional commit の解析(feat、fix、chore など)
  • 日付ごとにコミットをグループ化、ロケール対応フォーマット
  • 5言語での完全な i18n サポート

Links