Flutterプロジェクトのpubパッケージに対してGitHub Dependabotを使ってみた
こんにちは、CX事業本部 IoT事業部の若槻です。
先月にGitHub Dependabotがpubパッケージのベータサポートを開始したとのことです。
そこで今回は、Flutterプロジェクトのpubパッケージに対してGitHub Dependabotを使ってみました。
※なお、Dependabotのpubサポートでは、ベータのためsecurity updatesをサポートしていないとのことです。
Support for pub is in beta, and thus, we are aware of some limitations. For example, security updates are not supported in this release but will be in the future.
この辺りも含めて動作を見てみたいと思います。
やってみる
準備
Flutterプロジェクトを作成します。
$ flutter create .
プロジェクト内にDependabot config fileを作成します。
$ mkdir .github $ touch .github/dependabot.yml
Dependabot config fileを次のように記載します。package-ecosystem: "pub"
を指定します。またpubはベータサポートなので、enable-beta-ecosystemsでtrue
を指定します。
version: 2 enable-beta-ecosystems: true updates: - package-ecosystem: "pub" directory: "/" schedule: interval: "weekly"
GitHubにPushすると、GitHub上でpubに対してDependabotのチェックが開始されます。
チェックが完了しました。
pubspec.yaml
とpubspec.lock
が監視対象となっています。
次に[Dependencies]でDependency Graphを有効化してみます。
しかし、有効化をしてもNo manifest files found
となりDependency Graphは表示されませんでした。どうやらベータのパッケージではDependency Graphが使用できないようです。
ちなみに[Code security and analysis]を見るとこの時点で[Dependency graph]および[Dependabot alerts]は有効化されていました。
Dependabot Version Updatesの動作
まずDependabot Version Updatesの動作を確認してみます。これはベータでもサポートされているはずです。
pubspec.lock
を編集して、パッケージcupertino_icons
を最新より古いバージョンに変更します。
cupertino_icons: dependency: "direct main" description: name: cupertino_icons url: "https://pub.dartlang.org" source: hosted version: "1.0.0" - version: "1.0.4" + version: "1.0.0"
上記変更をGitHubにPushし、Dependabotのチェックを開始します。
しばらくしてチェックが完了すると、Dependabot Version Updatesによりcupertino_icons
をアップデートするためのPull Requestが作成されました!
Pull Requestの内容はこんな感じです。
Dependabot alertsの動作
次にDependabot alertsの動作を確認してみます。security updatesをサポートしていないとのことでしたが、どうなるでしょうか。
firebase_messagingのNull safetyをサポートしていないバージョンを導入します。
pubspec.lock
を編集します。
firebase_messaging: ^7.0.3
変更をPushしてDependabotのチェックを実施しましたが、alertは作成されませんでした。
どうやらDependabot security updatesだけでなくDependabot alertsもサポート外のようです。
まとめ
- Dependabotでは
pub
パッケージはベータサポート(2022年5月現在) - Dependabot Version Updatesは利用可能。
- Dependabot Graphは表示されない。
- Dependabot alertsおよびDependabot security updatesは利用不可。
pubにはnpm-auditのようなコマンド実行で脆弱性を監視できるツールも無いので、Dependabotでの早期の正式サポートが望まれますね。
以上