概要
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で開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。