GitHubが10月頭に以下のブログを掲載しました。Dart/FlutterプロジェクトにDependabot機能が追加されました。
Dependabotは、依存しているライブラリを解析し、脆弱性があればアラートを投げてくれたり、自動的にバージョンアップのプルリクエストを作成してくれる機能です。npmやbundlerなど多くのパッケージ管理システムをサポートしています。
Dart/Flutterプロジェクトのpubでは、ベータ版として春先には使えるようになっていたようですが、ようやく正式サポートになったようになったようです。
正式サポートによってプライベートリポジトリでも有効化できるようになったようなのでありがたいですね🙏
実例
私のGitHubのサンプルの1つであるStateNotifierTestに、以下のようなアラートが届いていました。httpパッケージに脆弱性があるという通知ですね。最近メンテしていませんでしたが、パブリックリポジトリだと自動的に有効化されるようなのでとても助かります。
今後のために、 Dependabotをセッティングしていきます。
Dependabotの有効化
Insights→Dependency graph→Dependabot
と辿り、Dependabotを有効化します。
Dependabot security updates(脆弱性対策)の有効化
Settings→Code security and analysis→Dependabot
と辿り、Dependabot security updates
設定を有効化します。
前述した脆弱性の不具合などを見つけた際に、自動でアップデートするプルリクを作成してくれます。
Dependabot version updates(バージョン更新)の有効化
自動でライブラリのアップデートを検知してくれるように、dependabot.yml
も設定します。
Settings→Code security and analysis→Dependabot
と辿り、Dependabot version updates
設定からymlを作成します。pubをスキャンするように設定しておけば、ライブラリのアップデートを検知してプルリクを作成してくれます。
おわりに
個人だけでなく企業でもFlutterを導入しているところが増えてきていますが、ライブラリのアップデート周りに頭が回らないところも多いかと思います。セキュリティ面を担保するためにも、Dependabot機能を積極的に使っていきたいですね💪