GitHub Actions アップデータ
.github/workflows/*.yml および .github/workflows/*.yaml ファイルを最新に保つため、アクションをスキャンし、最新バージョンを解決し、アップグレードを提案します。
クイックスタート
ユーザーが次のように尋ねた場合:
「GitHub Actionsを更新して」 「どのアクションが古い?」 「ワークフローのアクションをバンプして」
以下のワークフローに従い、差分スタイルの提案を含むMarkdownレポートを返します。
ワークフロー
-
ワークフローのスキャン
- すべての
.github/workflows/*.ymlおよび.github/workflows/*.yamlファイルを検索します。 - 存在しない場合は、ユーザーに伝えて停止します。
- すべての
-
uses:参照の抽出- 各ワークフローから
uses:行を解析します。 - 以下はスキップ:
- ローカルパス:
./... - Docker参照:
docker://... - 完全なSHAコミット: 40文字の16進数SHAのように見えるもの
- ローカルパス:
- 記録:
action、current_version、workflow_file、line_number。
- 各ワークフローから
-
最新バージョンの解決
- 各アクションを
owner/repoに分割します。 - 以下の順序でツールを試行:
gh api repos/{owner}/{repo}/tags --jq '.[].name'(ghが利用可能な場合)fetchを使用してhttps://api.github.com/repos/{owner}/{repo}/tags- Brave Search / Google Search MCP で
"{owner}/{repo} latest release tag"を検索
- タグを有効なセマンティックバージョニングにフィルタリングします。
- デフォルトでは完全なセマンティックバージョン (
v5.3.1) よりもメジャータグ (v5) を優先します。 - メジャータグが存在しない場合は、最も高いセマンティックバージョンタグにフォールバックします。
- 各アクションを
-
破壊的変更の検出
- 最新バージョンが現在のバージョンよりも高いメジャーバージョンの場合、破壊的変更としてマークします。
- 以下に埋め込まれたレジストリと照合し、既知の警告を確認します。
-
提案レポートの生成
- 以下の内容を含むMarkdownレポートを作成:
- 概要テーブル: アクション | 現在 | 最新 | 破壊的変更? | ファイル
- アクションごとの差分ブロック
⚠付きの破壊的変更警告
- ユーザーが明示的に要求しない限り、ワークフローファイルは編集しません。
- 以下の内容を含むMarkdownレポートを作成:
破壊的変更レジストリ
- action: actions/checkout
from_major: 3
to_major: 4
warning: "Nodeランタイムが16から20にアップグレードされました。カスタムランナーとセルフホステッド環境を確認してください。"
- action: actions/setup-node
from_major: 3
to_major: 4
warning: "Node 16ランタイムは非推奨になりました。Node 20が使用されます。"
- action: actions/setup-go
from_major: 4
to_major: 5
warning: "Node 20ランタイム。カスタムキャッシュキーや副作用を確認してください。"
出力テンプレート
## GitHub Actions 更新レポート
| アクション | 現在 | 最新 | 破壊的変更? | ファイル |
|------------|------|------|-----------|--------|
| actions/checkout | v3 | v4 | ⚠ はい | .github/workflows/ci.yml |
### 推奨される変更
`.github/workflows/ci.yml`:
```diff
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
破壊的変更の警告
- actions/checkout@v3 → v4: Nodeランタイムが16から20にアップグレードされました。カスタムランナーとセルフホステッド環境を確認してください。
## ルール
- ワークフローファイルをサイレントに書き込まないでください。
- 編集前には必ず差分スタイルのプレビューを表示してください。
- GitHub APIのレート制限に達した場合は、検索MCPまたは手動ガイダンスにフォールバックしてください。
- アクションにセマンティックバージョニングタグがない場合は、「最新バージョンを特定できません」と注記してください。