Skip to content

gaojiemm/prd_ChangLog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Changelog 週次サマリー

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

使い方

AI なし(件数確認のみ)

python3 scripts/generate_github_changelog.py \
  --since 2026-03-27 --until 2026-04-02 \
  --output CHANGELOG.md

AI あり(推奨)

python3 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 Actions

  • .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 なしで件数だけ確認可

12. 生成結果の検証 (新機能)

12.1 概要

scripts/verify_changelog.py は、生成した CHANGELOG.md が GitHub 公式サイトのデータと一致しているかを検証するスクリプトです。

データソース:

  • GitHub 公式 Changelog Sitemap XML
  • ローカル CHANGELOG.md
  • ローカル logs/verify_changelog.log

12.2 基本的な使い方

python3 scripts/verify_changelog.py

12.3 実行例とオプション

例 1: 基本的な検証

python3 scripts/verify_changelog.py

出力内容:

  • ローカル CHANGELOG.md の条目一覧(分類付き)
  • 公式 Sitemap から取得した条目一覧(分類付き)
  • 不足している条目
  • ローカルのみに存在する条目
  • 集計情報(Action/Copilot/Other の件数)

例 2: 特定期間を検証

python3 scripts/verify_changelog.py \
  --since 2026-03-18 \
  --until 2026-03-25

例 3: 別の CHANGELOG ファイルを検証

python3 scripts/verify_changelog.py \
  --changelog other_changelog.md

例 4: すべてのカテゴリを含めて表示

python3 scripts/verify_changelog.py --include-all

通常は ActionCopilot のみ対象ですが、この オプションで Security、Mobile などの行も表示します。

12.4 出力の見方

色分け表示:

  • ✅ [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
   ...

12.5 使用シーン

シーン 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: 定期実行の品質チェック

毎週実行後に自動でこのスクリプトを呼び出し、不足がないかを確認する。

12.6 ログ出力

このリポジトリでは、生成処理と検証処理のログを 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

12.7 今後の拡張

今後は Slack 連携を追加し、検証に成功した CHANGELOG.md の本文を Slack チャンネルへ通知できるようにする予定です。

想定方針:

  • GitHub Actions 実行後に Slack 通知ステップを追加する
  • 通知本文には CHANGELOG.md の要約結果をそのまま使う
  • 送信方法は Slack Incoming Webhook または Slack Bot Token を想定する
  • 通知失敗時は logs/ 配下または Workflow summary にエラーを残す

12.8 想定される出力パターン

パターン A: 完全に一致

判定: ✅ 一致

✅ すべての対象条目が一致しました。

→ CHANGELOG が公式サイトと完全に一致している状態。最高です。

パターン B: Action/Copilot 特化(推奨)

判定: ✅ 一致

✅ すべての対象条目が一致しました。

→ 正常です。既定では Action と Copilot のみを比較対象にするため、対象外カテゴリは不一致扱いになりません。

パターン C: Action/Copilot の欠落(注意)

不足している Action/Copilot 条目: 1
  - Action:  1
  - Copilot: 0

👉 CHANGELOG を更新する場合は再生成を実行してください。

→ Action または Copilot 関連の条目が漏れている。再生成を検討してください。

12.9 トラブルシューティング

問題: タイムアウト

⚠️ 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages