この記事は、【 可茂IT塾 Advent Calendar 2025 】の16日目の記事です。
複数のFlutterプロジェクトを管理していると、依存関係の更新をチェックするのが意外と面倒です。定期的にflutter pub outdatedを実行して、どのパッケージが更新可能か確認して...という作業を手動でやるのは時間がかかります。
「GitHub Actionsで自動的にチェックして、更新があったらSlackに通知してくれたら楽だよなぁ」
そんな何気ない思いつきから、このツールを作りました。GitHub Actionsを使って定期実行し、更新が必要な場合にSlackに通知を送ることで、依存関係の管理を自動化できます。

Slack で更新可能なパッケージをサマリー通知

スレッド内に詳細Excelファイルを添付

更新可能なパッケージの詳細なバージョン情報を確認できる(Excel形式)
GitHub Actionsを使用してFlutterプロジェクトの依存関係を自動チェックし、更新状況をSlackに通知
.fvmrcファイルから取得)pubspec.yamlに記載されているパッケージの更新チェックGitHubリポジトリのSecretsに以下を設定する必要があります:
SLACK_BOT_TOKEN: Slack Bot Token(files:writeスコープが必要)SLACK_CHANNEL_ID: 通知を送信するSlackチャンネルIDGH_TOKEN: プライベートリポジトリにアクセスする場合のGitHub Token(オプション).fvmrcからFlutter SDKバージョンを取得pubspec.yamlを解析してパッケージ情報を取得Excelレポートでは、パッケージの更新状況を色で視覚的に表示します。
| 色 | 意味 | 説明 | 例 |
|---|---|---|---|
| 黒色 | 更新不要(任意更新可能) | 現在のバージョン制約(^や~)の範囲内に最新バージョンが含まれる | ^4.8.0 → 4.9.0(^4.8.0は>=4.8.0 <5.0.0なので、4.9.0を含む) |
| 青色 | マイナー/パッチバージョンアップ | 最新バージョンが現在のバージョン制約の範囲外だが、メジャーバージョンは同じ | ^0.12.0 → 0.14.4(マイナーアップ) |
| 赤色 | メジャーバージョンアップ | 最新バージョンのメジャーバージョンが現在より大きい。破壊的変更の可能性あり | ^2.2.0 → 3.0.3(メジャーアップ) |
| 色 | 意味 |
|---|---|
| 黒色 | 最新バージョンを使用中 |
| オレンジ色 | Flutter SDKの更新が利用可能 |
Flutterのpubspec.yamlでは、バージョン制約を指定する際に以下の記号を使用します:
^4.8.0: >=4.8.0 <5.0.0を意味します(4.8.0以上5.0.0未満)~4.8.0: >=4.8.0 <4.9.0を意味します(4.8.0以上4.9.0未満)4.8.0: 厳密に4.8.0のみ重要なポイント: ^記号がある場合、更新は必須ではありませんが、更新可能なバージョンがあることを示します。
このツールは個人プロジェクトとして開発しており、たまにメンテナンスしていこうと思っています。
そのため、フォークして使用してもらっても問題ありません。自分の環境に合わせてカスタマイズしたり、改善を加えたりして使っていただけます。
git clone https://github.com/vintage-tracker/flutter-dependency-checker.git
chat:write(メッセージ送信)files:write(Excelファイルのアップロード)/invite @your-bot-name)リポジトリのSettings > Secrets and variables > Actionsから以下を設定:
SLACK_BOT_TOKEN: Slack Bot Token(xoxb-で始まる)SLACK_CHANNEL_ID: 通知を送信するSlackチャンネルID(Cで始まる)GH_TOKEN: プライベートリポジトリにアクセスする場合のGitHub Token(オプション)repositories.jsonファイルを作成または編集して、チェックしたいFlutterプロジェクトのリポジトリ情報を指定します。
単一リポジトリの例:
{
"repositories": [
{
"name": "example_app",
"description": "サンプルFlutterアプリ",
"url": "https://github.com/your-org/example_app"
}
],
"settings": {
"includeDevDeps": true
}
}
複数リポジトリの例:
{
"repositories": [
{
"name": "example_app",
"description": "メインアプリ",
"url": "https://github.com/your-org/example_app"
},
{
"name": "admin_dashboard",
"description": "管理画面アプリ",
"url": "https://github.com/your-org/admin_dashboard"
},
{
"name": "shared_package",
"description": "共通パッケージ",
"url": "https://github.com/your-org/shared_package"
}
],
"settings": {
"includeDevDeps": true
}
}
name: リポジトリの名前(識別用)description: リポジトリの説明(オプション)url: GitHubリポジトリのURLsettings.includeDevDeps: 開発依存関係(dev_dependencies)もチェックするかどうかcron形式で実行スケジュールを設定できます。例:毎週月曜日の午前9時
on:
schedule:
- cron: '0 9 * * 1'
.fvmrcファイルが存在するか確認.fvmrcファイルの形式が正しいか確認(flutter: "3.24.0"またはflutter: 3.24.0)pubspec.yamlのenvironmentセクションにFlutterバージョンが記載されているか確認files:writeスコープが設定されているか確認/invite @your-bot-name)GH_TOKENシークレットが設定されているか確認repoスコープが付与されているか確認GitHubリポジトリはこちら↓
https://github.com/vintage-tracker/flutter-dependency-checker
可茂IT塾ではFlutter/Reactのインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More可茂IT塾ではFlutter/Reactのインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More