■ はじめに
CI/CD に関する打ち合わせの中で、 「Dependabot (ディベンダ ボット)」なるものが出てきたので メモしておく。
目次
【1】Dependabot 【2】サポート言語 【3】Dependabot の 適用 1)Python / Poetry
【1】Dependabot
* パッケージ管理(e.g. Poetry)のマニフェストファイルを見て、 安全ではないライブラリを検知し、Web UI上に通知したり、 それを解決するためのプルリクを自動で生成してくれるサービス * 元は独立したサービスだったが、2019 年に GitHub が買収
実際に表示されたメッセージ
We found potential security vulnerabilities in your dependencies. Only the owner of this repository can see this message.
【2】サポート言語
* JavaScript/TypeScript (npm, yarn) * Python (pip, pipenv, pip-compil, poetry) * Ruby (Bundler) * PHP (Composer) * Rust (Cargo) * Docker * Terraform * GitHub Actions * Java/Kotolin (Gradle, Maven) * .NET (NuGet) * Go (Go modules) etc => 主要な言語は、ほぼ網羅している。 => 詳細は、以下の公式サイトを参照のこと。
【3】Dependabot の 適用
* 結構、簡単に導入できるので、試してみてもいいかも。
1)Python / Poetry
より抜粋 ~~~~~~~~~~ pipenvやpoetryといったパッケージマネージャでは、 pipのYAML値を使う必要があります。 たとえばPythonの依存関係を管理するのにpoetryを使っており、 Dependabotに新しいバージョンのために依存関係のマニフェストファイルを モニターさせたい場合は、dependabot.ymlファイル中で package-ecosystem: "pip"を使ってください。 ~~~~~~~~~~
実際の適用手順
[1] Github に [Insights]-[Dependency graph]-[Dependabot]を選択 [2] 「Enable Dependabot」、「Create config file」ボタン押下 => 「dependabot.yml」ができる [3] 「- package-ecosystem: ""」を「- package-ecosystem: "pip"」に変更 => 例えば、Gradle の場合、「- package-ecosystem: "gradle"」に変更 => 例えば、npm の場合、「- package-ecosystem: "npm"」に変更 => 設定値は、以下のサイト参照。
[4] 「Commit new file」ボタン押下
dependabot.yml
version: 2 updates: - package-ecosystem: "pip" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "daily"
参考文献
https://qiita.com/takasp/items/c2907f2da855c207b8ef
https://dev.classmethod.jp/articles/dependabot-101/
https://dev.classmethod.jp/articles/github-dependabot-2021/
関連記事
Github ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/07/18/234652
Github ~ Github Actions 編 ~
https://dk521123.hatenablog.com/entry/2021/11/04/142835
パッケージ管理 ~ Poetry ~
https://dk521123.hatenablog.com/entry/2021/11/09/155903
Python を奇麗に書くためのツール群
https://dk521123.hatenablog.com/entry/2021/11/08/221219