GitHub Changelog から Action / Copilot 関連の更新を取得し、Copilot CLI で日本語要約を生成します。
Sitemap(全量抽出)→ RSS(タイトル補正)→ Copilot CLI(日本語要約)→ CHANGELOG.md
- Sitemap が主データソース(全記事を漏れなく取得)
- RSS は正式タイトル・要約の補正に使用(失敗しても続行可能)
scripts/generate_github_changelog.py # メインスクリプト
prompts/changelog_weekly_ja.md # 一次生成プロンプト
prompts/changelog_weekly_ja_review.md # 矯正プロンプト
.github/workflows/generate-changelog.yml # GitHub Actions
python3 scripts/generate_github_changelog.py \
--since 2026-03-27 --until 2026-04-02 \
--output CHANGELOG.mdpython3 scripts/generate_github_changelog.py \
--since 2026-03-27 --until 2026-04-02 \
--use-github-ai \
--copilot-cli-command "copilot --silent" \
--prompt-template prompts/changelog_weekly_ja.md \
--correction-prompt-template prompts/changelog_weekly_ja_review.md \
--output CHANGELOG.md- Python 3(追加ライブラリ不要)
- AI 生成時は Copilot CLI(
copilot --versionで確認)
.github/workflows/generate-changelog.yml- 毎週水曜 09:00 JST に自動実行(手動実行も可)
- Secrets に
COPILOT_GITHUB_TOKEN(Fine-grained PAT、Copilot Requests: Read権限)が必要
| 症状 | 対処 |
|---|---|
copilot が見つからない |
export PATH="$HOME/.local/bin:$PATH" を ~/.zprofile に追加 |
| AI 要約が失敗する | copilot --prompt "OK" --silent で認証確認 |
| Actions で失敗 | COPILOT_GITHUB_TOKEN に Fine-grained PAT を設定(Classic PAT は不可) |
| 件数が少ない | Action / Copilot のみ対象。AI なしで件数だけ確認可 |
scripts/verify_changelog.py は、生成した CHANGELOG.md が GitHub 公式サイトのデータと一致しているかを検証するスクリプトです。
データソース:
- GitHub 公式 Changelog Sitemap XML
- ローカル
CHANGELOG.md - ローカル
logs/verify_changelog.log
python3 scripts/verify_changelog.pypython3 scripts/verify_changelog.py出力内容:
- ローカル
CHANGELOG.mdの条目一覧(分類付き) - 公式 Sitemap から取得した条目一覧(分類付き)
- 不足している条目
- ローカルのみに存在する条目
- 集計情報(Action/Copilot/Other の件数)
python3 scripts/verify_changelog.py \
--since 2026-03-18 \
--until 2026-03-25python3 scripts/verify_changelog.py \
--changelog other_changelog.mdpython3 scripts/verify_changelog.py --include-all通常は Action と Copilot のみ対象ですが、この オプションで Security、Mobile などの行も表示します。
色分け表示:
✅ [Action ]- Action に該当する条目✅ [Copilot]- Copilot に該当する条目⚠️ [Other ]- Action/Copilot 以外の条目
統計情報:
ローカル CHANGELOG.md:
- Action: 2
- Copilot: 8
- Other: 0
- 合計: 10
公式 Sitemap:
- Action: 2
- Copilot: 8
- Other: 5
- 合計: 15
対比分析:
✅ 一致- CHANGELOG と公式サイトの条目がすべて同じ⚠️ 不一致- 不足している条目がある
不足している場合の例:
❌ ローカルに不足している条目: 1 件
✅ [Action ] 2026-03-19 - some-missing-action-entry
...
シーン 1: CHANGELOG 生成後の品質確認
python3 scripts/generate_github_changelog.py \
--since 2026-03-18 \
--until 2026-03-25 \
--use-github-ai \
--copilot-cli-command "copilot --silent" \
--prompt-template prompts/changelog_weekly_ja.md \
--correction-prompt-template prompts/changelog_weekly_ja_review.md \
--output CHANGELOG.md
# 生成結果を検証
python3 scripts/verify_changelog.pyシーン 2: 過去のデータを追跡
CHANGELOG がカバーしているべき期間の条目が本当に全部含まれているか確認:
python3 scripts/verify_changelog.py \
--since 2026-02-01 \
--until 2026-02-28シーン 3: 定期実行の品質チェック
毎週実行後に自動でこのスクリプトを呼び出し、不足がないかを確認する。
このリポジトリでは、生成処理と検証処理のログを logs/ 配下に保存します。
これらのファイルは、ローカル実行または GitHub Actions 実行後に生成されます。
logs/generate_changelog.log:scripts/generate_github_changelog.pyの実行ログlogs/verify_changelog.log:scripts/verify_changelog.pyの実行ログ
ローカル実行例:
mkdir -p logs
python3 scripts/generate_github_changelog.py \
--since 2026-03-18 \
--until 2026-03-25 \
--use-github-ai \
--copilot-cli-command "copilot --silent" \
--prompt-template prompts/changelog_weekly_ja.md \
--correction-prompt-template prompts/changelog_weekly_ja_review.md \
--output CHANGELOG.md 2>&1 | tee logs/generate_changelog.log
python3 scripts/verify_changelog.py \
--since 2026-03-18 \
--until 2026-03-25 2>&1 | tee logs/verify_changelog.log今後は Slack 連携を追加し、検証に成功した CHANGELOG.md の本文を Slack チャンネルへ通知できるようにする予定です。
想定方針:
- GitHub Actions 実行後に Slack 通知ステップを追加する
- 通知本文には
CHANGELOG.mdの要約結果をそのまま使う - 送信方法は Slack Incoming Webhook または Slack Bot Token を想定する
- 通知失敗時は
logs/配下または Workflow summary にエラーを残す
パターン A: 完全に一致
判定: ✅ 一致
✅ すべての対象条目が一致しました。
→ CHANGELOG が公式サイトと完全に一致している状態。最高です。
パターン B: Action/Copilot 特化(推奨)
判定: ✅ 一致
✅ すべての対象条目が一致しました。
→ 正常です。既定では Action と Copilot のみを比較対象にするため、対象外カテゴリは不一致扱いになりません。
パターン C: Action/Copilot の欠落(注意)
不足している Action/Copilot 条目: 1
- Action: 1
- Copilot: 0
👉 CHANGELOG を更新する場合は再生成を実行してください。
→ Action または Copilot 関連の条目が漏れている。再生成を検討してください。
問題: タイムアウト
⚠️ https://github.blog/changelog-sitemap4.xml の取得に失敗しました
対処:
- ネットワーク接続を確認
- 数秒待てて再実行
問題: CHANGELOG.md が見つからない
❌ ファイルが存在しません: CHANGELOG.md
対処:
# 正しいパスを指定
python3 scripts/verify_changelog.py --changelog /full/path/to/CHANGELOG.md問題: 日付範囲が自動抽出されない
CHANGELOG.md に 対象期間:YYYY/MM/DD~YYYY/MM/DD の形式がない場合、明示的に指定:
python3 scripts/verify_changelog.py \
--since 2026-03-18 \
--until 2026-03-25