GitHub dependency graph / DependabotのPython対応更新点|2026年4月版

GitHub dependency graph / Dependabotの2026年4月更新で押さえるべき結論は、Pythonプロジェクトの推移的依存関係をより正確に可視化できるようになったことです。2026年4月23日のGitHub Changelogでは、Dependabotの仕組みを使ってPythonの依存関係スナップショットを生成し、dependency graphやSBOMに反映する機能が発表されました。これにより、pip、uv、Poetryを使う開発チームは、直接依存だけでなく「そのライブラリがさらに依存しているパッケージ」まで把握しやすくなります。(The GitHub Blog)

特に影響が大きいのは、Pythonアプリケーションを複数リポジトリで運用しているdevelopers、DevOps engineers、platform teamsです。今すぐ確認すべきことは、対象リポジトリでdependency graphが有効になっているか、lockファイルが適切にコミットされているか、プライベートレジストリ設定がDependabotから参照できるかの3点です。

目次

GitHub dependency graph / Dependabotの最新動向: Python対応で何が変わったか

今回の更新は、単に「Pythonもdependency graphで見やすくなった」という小さな改善ではありません。サプライチェーンリスクを管理するうえで、Pythonの依存関係ツリーをより実態に近い形で把握できるようになった点が重要です。

GitHubのdependency graphは、リポジトリ内のmanifestファイル、lockファイル、Dependency Submission APIで送信された依存関係情報をもとに、プロジェクトが依存しているパッケージを一覧化する機能です。各依存関係について、バージョン、ライセンス、manifestファイル、既知の脆弱性の有無などを確認できます。(GitHub Docs)

2026年4月23日の更新では、Pythonプロジェクト向けにDependabot graph jobsが導入され、依存関係スナップショットを生成してDependency Submission APIへアップロードする仕組みが使われるようになりました。GitHubは、この更新によりPythonプロジェクトのdependency graphとSBOMで、より完全で正確な推移的依存関係ツリーを確認できると説明しています。(The GitHub Blog)

更新ポイント何が変わるか実務での意味
Pythonの推移的依存関係をより正確に取得直接依存だけでなく、間接的に読み込まれる依存関係も把握しやすくなる脆弱性の影響範囲を見落としにくくなる
Dependabot graph jobsを利用Dependabotが依存関係スナップショットを作成し、Dependency Submission APIへ送信する手動のワークフロー作成なしで可視化を強化しやすい
GitHub Actions minutesを消費しないautomatic dependency submissionとは異なり、Actions分の課金対象にならない大規模組織でも導入時のコスト懸念を抑えやすい
Pythonの主要パッケージマネージャーに対応pip、uv、Poetry v1/v2をサポートPython標準的な構成から新しいuv利用環境まで対象にしやすい
Dependabotのプライベートレジストリ設定を活用組織レベルまたはリポジトリレベルのDependabot設定を参照できる社内パッケージを使う環境でもdependency graphの精度を上げやすい

なぜPythonのdependency graph強化が重要なのか

PythonはWebアプリ、機械学習、社内自動化、APIサーバー、データ処理基盤など幅広い用途で使われています。一方で、Pythonプロジェクトの依存関係は見た目以上に複雑になりがちです。

たとえば、requirements.txtに記載しているのは数十個のライブラリでも、それらがさらに依存するパッケージを含めると、実際に実行環境へ入るパッケージ数は大きく増えることがあります。脆弱性対応で問題になるのは、多くの場合「自分たちが直接指定したライブラリ」だけではありません。依存ライブラリのさらに先にある推移的依存関係も、アプリケーションのリスクになります。

GitHub Docsでも、静的解析ではmanifestやlockファイルから直接依存と間接依存を識別できる一方、ビルド時に解決される依存関係までは見えない場合があると説明されています。Dependabot graph jobsは、この不足を補うために依存関係スナップショットを生成する仕組みです。(GitHub Docs)

これまで起きやすかった問題

Pythonプロジェクトでは、次のような状態がよくあります。

よくある状態起きる問題今回の更新で期待できる改善
requirements.txtだけで管理している実際に解決された推移的依存関係が見えにくいより完全な依存関係ツリーをdependency graphに反映しやすくなる
Poetryでlockファイルを使っている依存関係は固定できているが、組織横断の可視化が弱いSBOMやDependabot alertsと組み合わせて管理しやすくなる
uvへ移行中新旧の依存管理方式が混在し、棚卸しが難しいuv対応により、移行中のリポジトリも可視化対象にしやすい
社内Pythonパッケージを使っているプライベートレジストリにアクセスできず依存関係が欠落しやすいDependabotのプライベートレジストリ設定を活用できる

Dependabot graph jobsとは何か

Dependabot graph jobsは、dependency graphのためにDependabotが依存関係スナップショットを生成する仕組みです。GitHub Docsでは、Dependabot graph jobsは特殊なDependabotジョブとして依存関係スナップショットを作成し、Dependency Submission APIへアップロードすると説明されています。現時点でGoとPythonの依存関係に対応しています。(GitHub Docs)

ポイントは、通常のDependabot version updatesやDependabot security updatesとは役割が違うことです。

Dependabot version updatesは、依存パッケージを新しいバージョンへ更新するプルリクエストを作る機能です。Dependabot security updatesは、脆弱性修正のための更新プルリクエストを作る機能です。一方、Dependabot graph jobsは、依存関係を更新するためではなく、dependency graphにより正確な依存関係情報を登録するための仕組みです。

機能主な目的PRを作るか今回のPython更新との関係
dependency graph依存関係の可視化いいえPythonの推移的依存関係がより正確に見える
Dependabot graph jobs依存関係スナップショットの生成いいえPython向けに今回の更新の中核となる
Dependabot alerts既知の脆弱性の通知いいえdependency graphの情報をもとに検知に活用される
Dependabot security updates脆弱性修正PRの作成はいalertsと組み合わせて修正対応に使う
Dependabot version updates通常のバージョン更新PRの作成はい定期的な依存関係メンテナンスに使う

「Dependabotが動く」と聞くと自動でPRが増える印象を持つかもしれませんが、Dependabot graph jobs自体は依存関係の可視化を目的とするジョブです。PR作成の増加を心配するより、まずdependency graphの精度が上がることで、どのリポジトリにどのリスクがあるかを把握しやすくなる点に注目すべきです。

対応するPythonパッケージマネージャー

GitHub Changelogでは、今回のリリースがPythonの主要パッケージマネージャーであるpip、uv、Poetry v1/v2をサポートするとされています。(The GitHub Blog)

GitHub Docsのdependency graph supported package ecosystemsでは、Python関連としてpipとPoetryが掲載されており、pipではrequirements.txtやpipfile.lock、Poetryではpoetry.lockが推奨ファイルとして示されています。また、setup.pyに依存関係を記述している場合、すべての依存関係を解析・一覧化できない可能性がある点も注意として示されています。(GitHub Docs)

利用環境確認したいファイル実務上の判断
piprequirements.txt本番環境に入る依存関係を反映しているか確認する
Pipenvpipfile.locklockファイルが最新で、リポジトリにコミットされているか確認する
Poetrypoetry.lock、pyproject.tomlpoetry.lockを必ず更新・コミットする運用にする
uvuvで管理している依存関係ファイルチーム内で標準化し、CIとローカルで解決結果がずれないようにする
setup.py中心setup.py解析漏れの可能性を前提に、lockファイル利用や依存関係の明文化を検討する

実務では「GitHubが対応したから安心」ではなく、依存関係をGitHubが読み取れる形でリポジトリに残しているかが重要です。特に、CIでだけ依存関係を生成している、ローカル環境のファイルをコミットしていない、複数の依存管理ツールが混在している、といった状態では可視化の精度が落ちる可能性があります。

dependency graphとSBOMへの影響

今回の更新は、SBOM管理にも影響します。GitHubでは、リポジトリのdependency graphの現在の状態をSBOMとしてエクスポートできます。SBOMはSPDX形式で出力でき、依存関係のバージョン、パッケージ識別子、ライセンス、推移的依存関係のパスなどを含みます。(GitHub Docs)

つまり、Pythonの推移的依存関係ツリーがより正確になると、dependency graphだけでなく、そこから出力するSBOMの実用性も高まります。

SBOMを使うべき場面

SBOMは、セキュリティ部門や監査対応だけのものではありません。開発・運用の現場では次のように使えます。

活用シーン使い方
脆弱性対応影響を受けるPythonパッケージがどのリポジトリに含まれるか確認する
顧客・取引先への説明利用OSSの一覧やライセンス情報を整理して提示する
リリース前チェック本番投入前に依存関係の棚卸しを行う
M&A・システム統合複数リポジトリのOSS利用状況を把握する
プラットフォーム標準化組織内で利用されるパッケージやバージョンの偏りを確認する

SBOMは「出せること」よりも「実態に近いこと」が重要です。古いlockファイル、未コミットの依存関係、CIでだけ追加されるパッケージがあると、SBOMと実行環境がずれます。今回の更新を機に、SBOM出力前の依存関係ファイル整備を標準手順に入れると効果的です。

既存のautomatic dependency submissionとの違い

今回のDependabot graph jobsは、automatic dependency submissionと似ていますが、運用上の違いがあります。

GitHub Docsによると、automatic dependency submissionはGitHub Actions workflowをバックグラウンドで実行し、完全な依存関係ツリーを生成してDependency Submission APIへアップロードします。この方式はGitHub-hosted runnersではGitHub Actions minutesの対象になり、必要に応じてself-hosted runnersやlarger runnersを選べます。(GitHub Docs)

一方、Dependabot graph jobsはGitHub Actions minutesを消費せず、Dependabot向けに設定した組織レベルのプライベートレジストリ設定にもアクセスできます。GitHub Docsでは、対応エコシステムではDependabot graph jobsがautomatic dependency submissionより優先されると説明されています。(GitHub Docs)

比較項目Dependabot graph jobsautomatic dependency submission
主な目的Dependabot基盤で依存関係スナップショットを生成GitHub Actionsで依存関係を解決して送信
Python対応2026年4月更新の対象既存の依存関係送信手段として利用可能
Actions minutes消費しないGitHub-hosted runnersでは消費する
プライベートレジストリDependabotの設定を利用しやすいワークフロー側の認証・ネットワーク設定が必要
優先順位対応エコシステムではautomatic dependency submissionより優先Dependabot graph jobsがない場合に使われる

すでにPythonリポジトリでautomatic dependency submissionを設定している場合、今回の更新後はDependabot graph jobsが有効になることで、そのジョブが動かなくなる可能性があります。GitHub Docsでは、Pythonリポジトリで以前automatic dependency submissionを使っていた場合、Dependabot graph jobsが有効になるとそれらのジョブは実行されなくなると説明されています。(GitHub Docs)

開発チームが今すぐ確認すべき設定

今回の更新を活かすには、まずdependency graphが有効になっている必要があります。GitHub Docsでは、dependency graphを有効にすると、GitHubがリポジトリ内の依存関係manifestやlockファイルへ読み取り専用でアクセスできるようになると説明されています。リポジトリ単位では、SettingsからAdvanced Securityへ進み、Dependency Graphを有効化できます。(GitHub Docs)

確認手順

| 手順 | 確認内容 | 判断基準 |
| -: | ————————— | ————————————————– |
| 1 | Pythonリポジトリを棚卸しする | pip、uv、Poetryのどれを使っているかを把握する |
| 2 | dependency graphの有効化状況を確認する | public repositoryは既定で有効、private repositoryは設定を確認する |
| 3 | lockファイルを確認する | 本番環境と同じ依存関係が反映されているかを見る |
| 4 | プライベートレジストリ設定を確認する | Dependabot secretsやorganization-level設定が最新か確認する |
| 5 | dependency graphの表示を確認する | 直接依存と推移的依存関係が期待どおり表示されるか確認する |
| 6 | SBOMをエクスポートする | 主要リポジトリでSBOMが実態に近いかレビューする |
| 7 | Dependabot alertsを確認する | 新たに見えるようになった推移的依存関係の脆弱性を優先度付けする |

最初から全リポジトリで完璧に整備しようとすると時間がかかります。まずは本番稼働中のAPI、外部公開サービス、顧客データを扱うPythonアプリ、社内共通ライブラリから確認するのが現実的です。

platform teamsが見るべき運用ポイント

platform teamsにとって今回の更新は、個別リポジトリの改善ではなく、組織全体のサプライチェーン可視化を底上げする機会です。

特に重要なのは、標準化です。各チームが自由にrequirements.txt、Poetry、uv、独自スクリプトを使っていると、dependency graphの見え方やSBOMの信頼性に差が出ます。すべてを同じツールに統一する必要はありませんが、最低限、次のルールは決めておくべきです。

標準化する項目推奨ルール
lockファイル本番に使う依存関係を固定し、必ずリポジトリにコミットする
依存関係更新Dependabot PRを放置せず、レビュー担当とSLAを決める
プライベートパッケージDependabotから参照できる認証情報を組織レベルで管理する
SBOM出力リリース前、四半期ごと、監査前など出力タイミングを決める
例外管理解析できない依存関係や除外したパッケージを記録する

Dependabot graph jobsでは、プライベートパッケージにアクセスできない場合でも、設定済みのDependabot secretsでアクセスできないものはdependency graphから穏やかに省略され、ジョブ全体の失敗にはならないとされています。(GitHub Docs)

これは便利な一方で、「失敗していないから完全に取得できている」と誤解しやすい点に注意が必要です。社内パッケージが多い組織では、dependency graphに表示される内容と、実際のインストール結果を定期的に突き合わせる運用が必要です。

DevOps engineersが注意すべきCI/CD上の落とし穴

DevOps engineersがまず確認すべきなのは、既存のdependency submission系ワークフローとの重複です。

GitHub Docsでは、dependency graphは複数の依存関係送信方法を利用でき、同じmanifestが複数回スキャンされる可能性があるため、優先順位に基づいて最も正確な情報を使うと説明されています。優先順位は、ユーザー送信、Dependabot graph jobs、automatic submissions、静的解析の順です。(GitHub Docs)

状況起きやすい問題対応
自作のDependency Submission APIワークフローがあるDependabot graph jobsよりユーザー送信が優先される自作ワークフローが本当に必要か見直す
automatic dependency submissionを有効にしていたPythonではDependabot graph jobsが優先される可能性がある期待どおりのジョブが動いているか確認する
lockファイルをCIで生成しているリポジトリ上のdependency graphと実行環境がずれるlockファイルをリポジトリに反映する運用へ変更する
self-hosted runnerのネットワーク制限が強い依存関係解決やパッケージ取得に失敗する可能性があるPython関連のアクセス先とプライベートレジストリを確認する

特に、すでにDependency Submission APIを独自に使っているチームでは、Dependabot graph jobsの導入によって「何が最終的にdependency graphへ反映されているのか」を確認してください。重複していてもGitHub側で優先順位はありますが、運用担当者が把握していないと、SBOMやアラートの差分を説明しづらくなります。

Pythonプロジェクトでの具体的な確認例

pipを使っている場合

pip中心のプロジェクトでは、requirements.txtが本番環境と一致しているかを確認します。開発用、テスト用、本番用で複数ファイルを分けている場合は、どのファイルが本番SBOMに相当するのかを明確にしておく必要があります。

悪い例は、requirements.txtには一部の直接依存だけを書き、CIで別途パッケージを追加している状態です。この場合、dependency graphやSBOMに実態が反映されにくくなります。

改善例としては、次のような運用が考えられます。

用途ファイル例運用
本番requirements.txt本番デプロイで使う依存関係を固定する
開発requirements-dev.txtテスト、Lint、型チェック用の依存関係を分ける
CICI設定ファイル本番に入らないツール類は明確に分離する

Poetryを使っている場合

Poetryでは、pyproject.tomlだけでなくpoetry.lockを必ずコミットすることが重要です。GitHub DocsでもPoetryの推奨ファイルとしてpoetry.lockが示されています。(GitHub Docs)

よくある失敗は、pyproject.tomlを変更したのにpoetry.lockを更新しないままPRを出すことです。依存関係の可視化だけでなく、ローカル、CI、本番の再現性にも影響します。

uvを使っている場合

uvはPythonの依存関係管理や環境構築の高速化を目的に導入されるケースが増えています。今回のGitHub Changelogではuvもサポート対象として明記されています。(The GitHub Blog)

uvを導入しているチームでは、依存関係ファイルの置き場所、CIでの解決方法、既存のpipやPoetryとの併用有無を確認してください。移行期間中は、旧ファイルと新ファイルの両方が残り、どちらが正なのか分からなくなることがあります。

導入後に見るべきチェックリスト

今回の更新を活かすには、設定を有効にしただけで終わらせないことが大切です。次のチェックリストを使うと、開発チームとplatform teamの認識をそろえやすくなります。

チェック項目OKの状態
dependency graphが有効対象リポジトリのInsightsからDependency graphを確認できる
lockファイルが最新最終リリース時点の依存関係が反映されている
プライベートレジストリにアクセス可能Dependabotの設定で必要な認証情報が管理されている
推移的依存関係が表示される直接依存だけでなく、依存パスを確認できる
Dependabot alertsが確認済み新たに検出された脆弱性をトリアージしている
SBOMを出力できるExport SBOMからSPDX形式のSBOMを取得できる
既存ワークフローとの重複を確認済み自作Dependency Submission APIやautomatic dependency submissionの必要性を見直している

GitHubでは、dependency graphのDependenciesタブからSBOMをエクスポートできます。リポジトリのInsights、Dependency graphへ進み、Dependenciesタブ右上のExport SBOMを使う流れです。(GitHub Docs)

今回の更新で誤解しやすいポイント

「Dependabotが全部直してくれる」わけではない

Dependabot graph jobsは、依存関係の可視化を強化する仕組みです。脆弱性の修正PRを作るには、Dependabot alertsやDependabot security updatesの設定・運用が必要です。

つまり、今回の更新で期待できるのは「見える範囲が広がること」です。修正判断、互換性確認、テスト、リリース判断は引き続きチーム側の責任です。

「Actions minutesを使わない」はDependabot graph jobsの話

今回のPython向けDependabot graph jobsはGitHub Actions minutesを消費しないとされています。一方、automatic dependency submissionはGitHub Actions workflowを使うため、GitHub-hosted runnersではActions minutesの対象になります。(The GitHub Blog)

既存のワークフローを使っている場合は、請求や実行ログの観点から、どの仕組みで依存関係が送信されているかを確認しましょう。

「SBOMを出せる」と「SBOMが正確」は別

SBOMはdependency graphの現在の状態をもとに出力されます。依存関係ファイルが古い、プライベートパッケージが取得できない、CIでのみ追加される依存関係がある、といった場合は、SBOMと実際のアプリケーション構成がずれる可能性があります。

SBOMを監査や顧客説明に使う場合は、出力前にlockファイル、プライベートレジストリ、dependency graph上の表示内容を確認してください。

GitHub Enterprise Serverでは対応状況を確認する

GitHub Docsのdependency graph supported package ecosystemsでは、Dependabot graph jobsの列について、現時点でGitHub Enterprise Serverでは利用できない旨が示されています。GitHub Enterprise Serverを使っている組織は、利用中のバージョンや公式ドキュメントで対応状況を確認してから展開計画を立てる必要があります。(GitHub Docs)

開発現場でのおすすめ運用

今回の更新を受けて、Pythonプロジェクトでは次の運用に寄せると効果が出やすくなります。

目的おすすめ運用
脆弱性の見落としを減らすdependency graphとDependabot alertsを定期的に確認する
依存関係の再現性を上げるlockファイルを必ずコミットし、CIで差分を検知する
SBOMの信頼性を上げるリリース前にSBOMを出力し、主要依存関係を確認する
プライベートパッケージを含めるDependabot用の認証設定を組織レベルで整備する
大規模組織で横断管理する重要リポジトリから段階的に展開し、標準ルールを作る

小規模チームであれば、まず本番リポジトリのdependency graphを確認し、Dependabot alertsの未対応分を整理するだけでも価値があります。大規模組織では、全リポジトリ一括対応よりも、外部公開サービス、認証・決済・個人情報を扱うシステム、社内共通ライブラリの順に優先順位を付けるのが現実的です。

まとめ: 次に取るべき行動

2026年4月23日の更新により、GitHub dependency graph / DependabotはPythonプロジェクトのサプライチェーン可視化を大きく改善しました。Dependabot graph jobsによって、pip、uv、Poetry v1/v2を使うPythonプロジェクトで、推移的依存関係をより正確にdependency graphやSBOMへ反映しやすくなっています。(The GitHub Blog)

次に取るべき行動は明確です。まず重要なPythonリポジトリでdependency graphが有効か確認し、lockファイルを整備してください。次に、Dependabot alertsを見直し、推移的依存関係に由来する脆弱性が新たに検出されていないか確認します。最後に、SBOMをエクスポートして、プライベートパッケージや本番依存関係が実態に近い形で反映されているかレビューしましょう。

この更新は、ツールの追加というより「Pythonの依存関係を見える化する土台」の強化です。セキュリティ対応を後追いにしないためにも、dependency graph、Dependabot alerts、SBOMを日常的な開発・運用プロセスに組み込むことが重要です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次