メインコンテンツへスキップ
友田 陽大
Dependabot・依存関係の自動更新
Dependabot
トラブルシューティング
GitHub Actions
DevSecOps
依存関係管理
サプライチェーンセキュリティ

Dependabot が動かない・PRが来ない時の完全トラブルシューティング:原因切り分けとエラー別の直し方

Dependabot がPRを作らない・脆弱性が直らない・プライベートレジストリでエラーになる——よくある詰まりを原因別に切り分けて直す実践ガイド。公式ドキュメント(2026年6月時点)に忠実に、『PRが来ない』の典型原因、Cannot update to a non-vulnerable version、private_source_* エラー、ログの読み方、そして2026年1月に変わった @dependabot コメントコマンドの最新仕様までを、コピペできる確認手順で解説します。

公開日
読了時間
10分
著者
友田 陽大
シェア

「Dependabot を有効にしたのに、PRが1つも来ない」「脆弱性アラートは出るのに修正PRが作られない」「プライベートレジストリで赤いエラーが出続ける」——Dependabot の相談で最も多いのが、この手の**“動かない”系です。原因のほとんどは故障ではなく設定の誤解か、切り分け不足**です。

この記事はDependabot 本番運用ガイドの各論として、症状から原因にたどり着くためのトラブルシューティングを体系化します。手元で順に確認できるチェックリストとして書きました。

この記事のルール:エラー名・挙動・コマンドは GitHub 公式ドキュメント(2026年6月時点) に基づきます。特に @dependabot コメントコマンドは2026年1月27日に仕様変更があり、古い記事の情報は危険です(後述)。本番運用前に必ず公式のトラブルシューティングで最新を確認してください。


0. まず切り分け:止まっているのは「3本柱」のどれか

Dependabot は3つの別機能の総称です。どれが動いていないかを最初に特定すると、原因が一気に絞れます。

症状:新しいバージョンのPRが来ない
  → version updates の問題(.github/dependabot.yml が要る)

症状:脆弱性アラートは出るが修正PRが来ない
  → security updates の問題(パッチの有無・前提条件)

症状:脆弱性アラート自体が出ない
  → alerts / 依存グラフ の問題(設定トグル)

この3分岐のどこにいるかを決めてから、対応する章へ進んでください。


1. 「新バージョンのPRが来ない」(version updates)

1.1 まず .github/dependabot.yml を確認

バージョン更新は設定ファイルがないと動きません。次を順に確認します。

  • ファイルパス:リポジトリ直下の .github/dependabot.yml.github/workflows/ ではない)。
  • YAML のインデント:タブ禁止・スペース2。version: 2updates: があるか。
  • package-ecosystem の値npm / pip / gomod / docker / github-actions など正しい識別子か。nodeyarn は誤り(npm/yarn/pnpm はすべて npm)。
  • directory:manifest があるディレクトリを指しているか(ルートなら /)。

1.2 「Pull request limit reached」

公式のPR数上限は バージョン更新=5 / セキュリティ更新=10。上限に達すると新しいPRは作られません。

1.3 その他の「来ない」原因

原因確認・対処
ignore で止めている該当依存に ignore 条件がないか。@dependabot show <name> ignore conditions で確認(後述)
target-branch が別ブランチ既定ブランチ以外を見ていないか。PRはそのブランチに対して作られる
schedule 待ちweekly/monthly だと次の実行まで来ない。手動トリガ(§5)で確認
そもそも最新依存が既に最新なら何も起きない(正常)
ロックファイル未コミットpackage-lock.json 等を .gitignore していると解決できないことがある

2. 「脆弱性が直らない」(security updates / alerts)

2.1 「Cannot update X to a non-vulnerable version」

セキュリティ更新で最頻のメッセージ。意味は**「脆弱性は分かったが、他の依存を壊さずに安全なバージョンへ上げられない」**です。

  • 原因:修正版がまだ無い、または依存グラフ上の他パッケージとバージョン制約が衝突している。
  • 対処バージョン更新を有効化して依存を日頃から新鮮に保つと、いざという時に単純なアップグレードで脆弱性を解消できる確率が上がります(公式の推奨)。塩漬けの依存ほど、緊急の脆弱性修正で詰まります。

2.2 アラート自体が出ない

確認項目対処
依存グラフが有効かSettings → Advanced Security で Dependency graph をON
Dependabot alerts が有効か同設定で Dependabot alerts をON
security updates が有効か同設定で Dependabot security updates をON
ロックファイルがコミットされているかセキュリティ更新は manifest かロックファイルに記載された依存のみ対象
サポート対象エコシステムか対象外の言語/管理ツールは検知されない

脆弱性対応の運用設計(SLA・auto-triage・grouped security updates)はアラート・セキュリティ更新ガイドで詳しく扱います。


3. 解析・解決エラー(dependency files)

3.1 「Dependabot can't resolve your LANGUAGE dependency files」

依存ファイルを解決できないエラー。

  • 原因:参照している依存(ローカルパス参照、到達できないURL、別リポジトリの manifest など)にアクセスできない
  • 対処:参照先がすべてアクセス可能な場所にあるか確認。private repo を参照しているなら、Organization レベルで private repository アクセスの許可が要る場合があります。

3.2 「the dependency file is not parseable / not found」

  • 原因:manifest/ロックファイルの構文エラー、または期待した場所にファイルが無いdirectory の指定ミス)。
  • 対処:ローカルでパッケージマネージャを実行して manifest が正しく解決できるか確認(npm install / pip install / go mod tidy 等)。directory のパスを再確認。

4. プライベートレジストリのエラー(4分類)

社内レジストリ絡みのエラーは、公式が4種類のコードに分類しています。症状で原因が分かるので覚えておくと速いです。

エラー(コード)意味主な対処
private_source_not_reachableレジストリに到達できないネットワーク到達性。GitHub-hosted から届かない私設網なら self-hosted ランナー
private_source_authentication_failure認証に失敗registries 定義と Dependabot シークレット(≠Actions シークレット)を確認。トークン失効・スコープ不足
private_source_timed_outレジストリ応答がタイムアウトレジストリ側の負荷・ネットワーク遅延。再試行・経路確認
private_source_certificate_failure証明書を検証できない自己署名/社内CA。証明書チェーンの設定を確認

設定の作り方(registries の type 別認証・OIDC・self-hosted ランナー)はプライベートレジストリ認証ガイドで網羅します。


5. ログの読み方と手動トリガ(一次情報に当たる)

推測する前に一次情報を見ます。

  1. リポジトリの Insights → Dependency graph → Dependabot タブを開く。
  2. 各エコシステムの Last checked(最終実行)とステータスを確認。
  3. 失敗していればジョブログを開いて、上記のエラー文字列を探す。

手動でトリガして即座に再現・確認することもできます。

  • バージョン更新:Dependabot タブで 「Check for updates」 をクリック。
  • セキュリティ更新:対象アラート画面で 「Create Dependabot security update」 をクリック。

「設定を変えたが効いたか分からない」ときは、手動トリガ→ジョブログ、が最短の検証ループです。


6. @dependabot コメントコマンド(2026年1月の変更に注意)

開いているPRには、コメントで指示が出せます。ここが2026年1月27日に変わりました——古い記事をコピーすると動かないコマンドを掴むので要注意です。

6.1 いま“残っている”更新挙動の制御コマンド

これらは Dependabot の更新の振る舞いを制御するもので、GitHub 標準UIに代替がないため引き続き有効です。

@dependabot rebase                         # PR を rebase する
@dependabot recreate                       # PR を作り直す(手編集は破棄)
@dependabot ignore this dependency         # この依存の今後のPRを止める
@dependabot ignore this major version      # この major を無視
@dependabot ignore this minor version      # この minor を無視
@dependabot ignore this patch version      # この patch を無視
@dependabot unignore <dependency>          # ignore を解除
@dependabot show <dependency> ignore conditions  # 現在の ignore 条件を表示

ignore をコメントで増やすと、dependabot.yml に書いていない暗黙の ignore 条件が積み上がります。「なぜか更新が来ない」の温床なので、show ... ignore conditions で棚卸しし、恒久ルールは dependabot.yml 側に明示しましょう(ignore の塩漬け対策)。

6.2 非推奨化されたPRライフサイクル系(2026-01-27)

@dependabot merge / squash and merge / cancel merge / close / reopen 等のPRライフサイクル操作は非推奨化されました。GitHub は標準のPR機能で行うよう推奨しています。

やりたいことこれからの方法
マージGitHub の Merge ボタン / gh pr merge / auto-merge ワークフロー
クローズ / 再オープンGitHub の標準UI / gh pr closegh pr reopen / REST API

gh CLI を使う例:

gh pr merge <PR番号> --squash   # マージ(自動化は auto-merge ワークフローで)
gh pr close  <PR番号>           # クローズ

6.3 そのほかの小技

  • force-push をスキップしたい(自分の編集を Dependabot に上書きさせたくない):コミットメッセージに [dependabot skip](または [skip dependabot] / [dependabot-skip] / [skip-dependabot])を含める。
  • 30日ルール:30日マージされないPRは、Dependabot が自動 rebase を停止します。古いPRは手動で rebase / 作り直し。

7. 詰まりを未然に防ぐチェックリスト

  • .github/dependabot.yml のパス・インデント・package-ecosystemdirectory が正しい
  • manifest とロックファイルをコミットしている(.gitignore していない)
  • alerts / security updates / 依存グラフがすべてON
  • open-pull-requests-limit 到達時はgroupsauto-merge で枠を回す
  • プライベートレジストリは registries + Dependabot シークレット + self-hosted ランナー
  • コメントで増やした ignore を定期棚卸し(show ... ignore conditions
  • PR 操作は標準UI / gh CLI / auto-merge に統一(非推奨コマンドを使わない)

8. FAQ

Q. dependabot.yml を置いたのにPRが来ません。 A. パス(.github/dependabot.yml)・インデント・package-ecosystemdirectory を確認し、Dependabot タブで「Check for updates」を手動実行してジョブログを見てください。最新なら何も起きないのが正常です。

Q. 「Cannot update X to a non-vulnerable version」と言われます。 A. 修正版が無いか依存が衝突しています。バージョン更新を有効化して依存を新鮮に保つと解消しやすくなります。直せない場合は緩和策やライブラリ差し替えの判断を記録してください。

Q. プライベートレジストリで認証エラーになります。 A. private_source_authentication_failure なら、registries 定義と Dependabot シークレット(Actions シークレットとは別)を確認。トークンの失効・スコープ不足が定番です。

Q. @dependabot merge が効かなくなりました。 A. 2026年1月27日にPRライフサイクル系コマンドが非推奨化されました。マージは GitHub の Merge ボタン / gh pr merge / auto-merge ワークフローを使ってください。

Q. ログはどこで見られますか? A. Insights → Dependency graph → Dependabot タブ。Last checked と各ジョブのログが一次情報です。

友田

友田 陽大

経済産業大臣賞 受賞プロダクト開発者。TypeScript + Python + AWS で、SaaS・業界DX・ 実用レベルの生成AI(RAG)を、要件定義からインフラ・運用まで一人で完遂します。

この記事の実装を、案件として承ります

依存関係の自動更新・サプライチェーン防御を、設計から本番運用まで承ります

アラート/セキュリティ更新/バージョン更新の有効化から、dependabot.yml の設計(groups・cooldown・モノレポの directories・プライベートレジストリ)、GitHub Actions と fetch-metadata による安全な auto-merge(patch/minorだけ自動・majorは人間レビュー)、深刻度別SLAを持った脆弱性対応、未対応件数の可観測化まで。CI品質ゲート(型・テスト・静的解析・セキュリティ)に依存更新を組み込んできた知見で、PR洪水を起こさず技術的負債を増やさない自動化を実装します。

プロジェクト単位(請負)・技術顧問のどちらにも対応可能です。まずは30分の無料技術相談から。

あわせて読みたい