概要
GitHubはDependabotと言う機能を提供しております。GitHubでこの機能を使うと、定期的にプロジェクトで使ってるパッケージ、ライブラリのバージョンをチェックしてアップデートがある場合、Pull requestを自動で生成してくれます。
- GitHub Dependabot: https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates
GitHubのDependabotに最近Flutter/Dartのpubパッケージ管理者が追加されました。
- GitHub Changelog: pub beta support for Dependabot version updates
今回のブログポストではGitHubのDependabotを使ってFlutterで使ってるパッケージのバージョンをチェックしてアップデートする方法について説明します。
FlutterのDependabotの設定
GitHubのDependabotを使うためにはプロジェクトフォルダに.githubフォルダを生成した後、dependabot.ymlファイルを生成する必要があります。
.github/dependabot.ymlファイルを生成したら、当該ファイルを開いて下記のように修正します。
version: 2
enable-beta-ecosystems: true
updates:
- package-ecosystem: "pub"
directory: "/"
schedule:
interval: weekly
time: "09:00"
timezone: Asia/Tokyo
open-pull-requests-limit: 5
pubのパッケージ管理者はまだbetaバージョンなのでenable-beta-ecosystems: trueを設定する必要があります。
Flutterプロジェクトでたくさんのパッケージを使っている場合、たくさんのPull requestが生成され、実際の作業に邪魔になる可能性があります。したがってopen-pull-requests-limit: 5オプションを設定してDependabotが生成できるPull requestの数を制限したり、scheduleを設定して、特定のサイクルでDependabotを起動するように設定することができます。
AndroidのDependabotの設定
AndroidはGradleを使ってライブラリのバージョンを管理しています。したがって、DependabotにGradleを設定してAndroidに追加したライブラリのバージョンを管理することができます。.github/dependabot.ymlファイルを開いて、下記のように修正してGradleのためのDependabotを追加します。
version: 2
enable-beta-ecosystems: true
updates:
...
- package-ecosystem: "gradle"
directory: "/android"
schedule:
interval: weekly
time: "09:00"
timezone: Asia/Tokyo
iOSのDependabotの設定
iOSはCocoaPodsを使ってライブラリのバージョンを管理します。しかし、残念ながらiOS用のDependabotは現在提供されてないです。Dependabotがサポートしてる言語は公式ドキュメントで確認できます。
- 公式ドキュメント: GitHub language support
確認
このように.github/dependabot.ymlファイルを生成して設定したら、当該ファイルをGitHubに上げます。(mainブランチにmergeします。)そしたら特定のサイクルがおわっると次のようにDependabotが新しいバージョンでPull requestを作ってくれることが確認できます。

当該Pull requestを開いて見ると、次のようにRelease notesとCommitsが確認できます。

各項目開いて見ると、詳しく修正内容を確認することができます。
- Release notes

- commits

これを使うと、新しいバージョンの変更を確認することが分かるし、現在プロジェクトの影響範囲を確認することができます。
File changedタブを開くとpubspec.yamlとpubspec.lockファイルが変更されたことが確認できます。

GitHub Actions
次はGitHubのDependabotは皆さんが使ってるパッケージのアップデートがある場合、自動でPull requestを生成してくれます。このように生成したPull requestを適用するかどうか考えるようになりますが、FlutterのLinterの設定やテストコードを上手く作成して、GitHub Actionsを使うと当該Pull requestを検査することができます。
また、次のように.github/dependabot.ymlを修正しておくと、DependabotがGitHub Actionsで使ってるActionsのバージョンをチェックしてアップデートがある場合お知らせしてくれます。
version: 2
enable-beta-ecosystems: true
updates:
...
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
time: "09:00"
timezone: Asia/Tokyo
完了
これでGitHubのDependabotを使って、Flutterプロジェクトで使ってるパッケージのバージョンを自動でチェックしてアップデートするように構成する方法をみてみました。皆さんもDependabotを使ってプロジェクトで使ってるパッケージのバージョンをいつも最新バージョンを使えるようにしてみてください。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Dekuが開発したアプリを使ってみてください。Dekuが開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。






