dependabot
GitHubのDependabotを設定・管理するための包括的なガイドです。`dependabot.yml`ファイルの作成・最適化、Dependabotプルリクエストの管理、依存関係更新戦略の設定、グループ更新・モノリポパターン・マルチエコシステムグループの構成、セキュリティアップデート設定、自動トリアージルール、またはDependabot関連のGitHub Advanced Security(GHAS)サプライチェーンセキュリティに関する質問があるときに使用します。AIコーディングエージェントがコミット前に依存関係の既知の脆弱性をスキャンする場合は、GitHub MCP Server経由でAdvanced Securityプラグイン(`advanced-security@copilot-plugins`)を参照します。
description の原文を見る
>- Comprehensive guide for configuring and managing GitHub Dependabot. Use this skill when users ask about creating or optimizing dependabot.yml files, managing Dependabot pull requests, configuring dependency update strategies, setting up grouped updates, monorepo patterns, multi-ecosystem groups, security update configuration, auto-triage rules, or any GitHub Advanced Security (GHAS) supply chain security topic related to Dependabot. For pre-commit dependency vulnerability scanning in AI coding agents via the GitHub MCP Server, this skill references the Advanced Security plugin (`advanced-security@copilot-plugins`). Use this skill when an agent needs to scan dependencies for known vulnerabilities before committing.
SKILL.md 本文
Dependabot の設定と管理
概要
Dependabot は GitHub の組み込み依存関係管理ツールで、3つのコア機能を備えています。
- Dependabot Alerts — 依存関係に既知の脆弱性(CVEs)がある場合に通知
- Dependabot Security Updates — 脆弱な依存関係を修正するための PR を自動作成
- Dependabot Version Updates — 依存関係を最新に保つための PR を自動作成
すべての設定は 単一ファイル .github/dependabot.yml にあり、デフォルトブランチに配置されます。GitHub はリポジトリごとに複数の dependabot.yml ファイルをサポートしていません。
設定ワークフロー
dependabot.yml を作成または最適化するときは、このプロセスに従います。
ステップ 1: すべてのエコシステムを検出
リポジトリをスキャンして依存関係マニフェストを探します。以下を確認してください。
| エコシステム | YAML 値 | マニフェストファイル |
|---|---|---|
| npm/pnpm/yarn | npm | package.json, package-lock.json, pnpm-lock.yaml, yarn.lock |
| pip/pipenv/poetry/uv | pip | requirements.txt, Pipfile, pyproject.toml, setup.py |
| Docker | docker | Dockerfile |
| Docker Compose | docker-compose | docker-compose.yml |
| GitHub Actions | github-actions | .github/workflows/*.yml |
| Go modules | gomod | go.mod |
| Bundler (Ruby) | bundler | Gemfile |
| Cargo (Rust) | cargo | Cargo.toml |
| Composer (PHP) | composer | composer.json |
| NuGet (.NET) | nuget | *.csproj, packages.config |
| .NET SDK | dotnet-sdk | global.json |
| Maven (Java) | maven | pom.xml |
| Gradle (Java) | gradle | build.gradle |
| Terraform | terraform | *.tf |
| OpenTofu | opentofu | *.tf |
| Helm | helm | Chart.yaml |
| Hex (Elixir) | mix | mix.exs |
| Swift | swift | Package.swift |
| Pub (Dart) | pub | pubspec.yaml |
| Bun | bun | bun.lockb |
| Dev Containers | devcontainers | devcontainer.json |
| Git Submodules | gitsubmodule | .gitmodules |
| Pre-commit | pre-commit | .pre-commit-config.yaml |
注意: pnpm と yarn はどちらも npm エコシステム値を使用します。
ステップ 2: ディレクトリの場所をマップ
各エコシステムについて、マニフェストが存在する場所を特定します。モノレポの場合は directories(複数形)でグロブパターンを使用します。
directories:
- "/" # ルート
- "/apps/*" # すべてのアプリサブディレクトリ
- "/packages/*" # すべてのパッケージサブディレクトリ
- "/lib-*" # lib- で始まるディレクトリ
- "**/*" # 再帰的(すべてのサブディレクトリ)
重要: directory(単数形)はグロブをサポートしていません。ワイルドカードの場合は directories(複数形)を使用します。
ステップ 3: 各エコシステムエントリを設定
すべてのエントリには最低限以下が必要です。
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
ステップ 4: グループ化、ラベル、スケジューリングで最適化
各最適化テクニックについては、以下のセクションを参照してください。
モノレポ戦略
ワークスペースカバレッジのためのグロブパターン
多数のパッケージを持つモノレポの場合、各ディレクトリをリストアップせずにグロブパターンを使用します。
- package-ecosystem: "npm"
directories:
- "/"
- "/apps/*"
- "/packages/*"
- "/services/*"
schedule:
interval: "weekly"
クロスディレクトリグループ化
group-by: dependency-name を使用して、複数のディレクトリで同じ依存関係が更新されるときに、単一の PR を作成します。
groups:
monorepo-deps:
group-by: dependency-name
これにより、指定されたすべてのディレクトリ全体で依存関係ごとに 1 つの PR が作成され、CI コストとレビュー負担が削減されます。
制限事項:
- すべてのディレクトリは同じパッケージエコシステムを使用する必要があります。
- バージョン更新のみに適用されます
- 互換性のないバージョン制約は個別の PR を作成します
ワークスペース外のスタンドアロンパッケージ
ディレクトリが独自のロックファイルを持ち、ワークスペースの一部ではない場合(例:.github/ のスクリプト)、その場所に対して別のエコシステムエントリを作成します。
依存関係グループ化
関連する依存関係を単一の PR にグループ化して、PR ノイズを削減します。
依存関係タイプ別
groups:
dev-dependencies:
dependency-type: "development"
update-types: ["minor", "patch"]
production-dependencies:
dependency-type: "production"
update-types: ["minor", "patch"]
名前パターン別
groups:
angular:
patterns: ["@angular*"]
update-types: ["minor", "patch"]
testing:
patterns: ["jest*", "@testing-library*", "ts-jest"]
セキュリティアップデート用
groups:
security-patches:
applies-to: security-updates
patterns: ["*"]
update-types: ["patch", "minor"]
主な動作:
- 複数のグループにマッチする依存関係は最初のマッチに移動します
applies-toが存在しない場合、デフォルトはversion-updatesです- グループ化されていない依存関係は個別の PR を取得します
マルチエコシステムグループ
異なるパッケージエコシステム全体の更新を単一の PR に結合します。
version: 2
multi-ecosystem-groups:
infrastructure:
schedule:
interval: "weekly"
labels: ["infrastructure", "dependencies"]
updates:
- package-ecosystem: "docker"
directory: "/"
patterns: ["nginx", "redis"]
multi-ecosystem-group: "infrastructure"
- package-ecosystem: "terraform"
directory: "/"
patterns: ["aws*"]
multi-ecosystem-group: "infrastructure"
multi-ecosystem-group を使用する場合、patterns キーは必須です。
PR のカスタマイズ
ラベル
labels:
- "dependencies"
- "npm"
labels: [] を設定してすべてのラベル(デフォルトを含む)を無効にします。SemVer ラベル(major、minor、patch)はリポジトリに存在する場合、常に適用されます。
コミットメッセージ
commit-message:
prefix: "deps"
prefix-development: "deps-dev"
include: "scope" # プレフィックスの後に deps/deps-dev スコープを追加
アサイニーとマイルストーン
assignees: ["security-team-lead"]
milestone: 4 # マイルストーン URL のスコープから取得した数値 ID
ブランチ名の区切り文字
pull-request-branch-name:
separator: "-" # デフォルトは /
ターゲットブランチ
target-branch: "develop" # デフォルトブランチの代わりに PR がこれをターゲットにします
注意: target-branch が設定されている場合、セキュリティアップデートはデフォルトブランチをターゲットにします。すべてのエコシステム設定はバージョン更新のみに適用されます。
スケジュール最適化
インターバル
サポート対象: daily、weekly、monthly、quarterly、semiannually、yearly、cron
schedule:
interval: "weekly"
day: "monday" # weekly のみ
time: "09:00" # HH:MM 形式
timezone: "America/New_York"
Cron 式
schedule:
interval: "cron"
cronjob: "0 9 * * 1" # 毎週月曜日午前 9 時
クールダウン期間
新しくリリースされたバージョンの更新を遅延させて、初期採用者の問題を回避します。
cooldown:
default-days: 5
semver-major-days: 30
semver-minor-days: 7
semver-patch-days: 3
include: ["*"]
exclude: ["critical-lib"]
クールダウンはバージョン更新にのみ適用されます。セキュリティアップデートには適用されません。
セキュリティアップデート設定
リポジトリ設定で有効化
Settings → Advanced Security → Dependabot alerts、セキュリティアップデート、およびグループ化されたセキュリティアップデートを有効化します。
YAML でセキュリティアップデートをグループ化
groups:
security-patches:
applies-to: security-updates
patterns: ["*"]
update-types: ["patch", "minor"]
バージョン更新を無効化(セキュリティのみ)
open-pull-requests-limit: 0 # バージョン更新 PR を無効化
自動トリアージルール
GitHub は開発依存関係の低インパクトアラートを自動却下するプリセットを備えています。カスタムルールは重大度、パッケージ名、CWE などでフィルタリングできます。リポジトリの Settings → Advanced Security で設定します。
PR コメントコマンド
@dependabot コメントを使用して Dependabot PR と対話します。
注意: 2026 年 1 月時点で、マージ/クローズ/再開コマンドは廃止されました。 GitHub のネイティブ UI、CLI(
gh pr merge)、またはオートマージを使用してください。
| コマンド | 効果 |
|---|---|
@dependabot rebase | PR をリベース |
@dependabot recreate | PR をゼロから再作成 |
@dependabot ignore this dependency | PR をクローズして、この依存関係を更新しない |
@dependabot ignore this major version | このメジャーバージョンを無視 |
@dependabot ignore this minor version | このマイナーバージョンを無視 |
@dependabot ignore this patch version | このパッチバージョンを無視 |
グループ化された PR の場合、追加のコマンド:
@dependabot ignore DEPENDENCY_NAME— グループ内の特定の依存関係を無視@dependabot unignore DEPENDENCY_NAME— 無視を解除し、更新と共に再開@dependabot unignore *— すべての依存関係のすべての無視をクリア@dependabot show DEPENDENCY_NAME ignore conditions— 現在の無視条件を表示
完全なコマンドリファレンスについては、references/pr-commands.md を参照してください。
無視とアロー ルール
特定の依存関係を無視
ignore:
- dependency-name: "lodash"
- dependency-name: "@types/node"
update-types: ["version-update:semver-patch"]
- dependency-name: "express"
versions: ["5.x"]
特定のタイプのみを許可
allow:
- dependency-type: "production"
- dependency-name: "express"
ルール: 依存関係が allow と ignore の両方に一致する場合、無視されます。
パスを除外
exclude-paths:
- "vendor/**"
- "test/fixtures/**"
高度なオプション
バージョン管理戦略
Dependabot がバージョン制約をどのように編集するかを制御します。
| 値 | 動作 |
|---|---|
auto | デフォルト — アプリでは増加、ライブラリでは拡張 |
increase | 常に最小バージョンを増加 |
increase-if-necessary | 現在の範囲が新しいバージョンを除外する場合のみ変更 |
lockfile-only | ロックファイルのみ更新、マニフェストは無視 |
widen | 古いバージョンと新しいバージョンの両方を含むように範囲を拡張 |
リベース戦略
rebase-strategy: "disabled" # 自動リベースを停止
コミットメッセージに [dependabot skip] を含めることで、余分なコミットを介したリベースを許可します。
開かれている PR の制限
open-pull-requests-limit: 10 # デフォルトはバージョンで 5、セキュリティで 10
0 に設定してバージョン更新を完全に無効化します。
プライベートレジストリ
registries:
npm-private:
type: npm-registry
url: https://npm.example.com
token: ${{secrets.NPM_TOKEN}}
updates:
- package-ecosystem: "npm"
directory: "/"
registries:
- npm-private
よくある質問
複数の dependabot.yml ファイルを使用できますか?
いいえ。GitHub は .github/dependabot.yml に正確に 1 つのファイルをサポートしています。異なるエコシステムとディレクトリに対して、そのファイル内で複数の updates エントリを使用します。
Dependabot は pnpm をサポートしていますか?
はい。package-ecosystem: "npm" を使用します。Dependabot は pnpm-lock.yaml を自動的に検出します。
モノレポで PR ノイズを削減するにはどうすればよいですか?
groups を使用して更新をバッチ処理し、カバレッジのために directories をグロブで使用し、クロスディレクトリグループ化のために group-by: dependency-name を使用します。優先度の低いエコシステムについては、monthly または quarterly のインターバルを検討してください。
ワークスペース外の依存関係をどのように処理しますか?
その場所を指す独自の directory を持つ別のエコシステムエントリを作成します。
AI コーディングエージェント経由での Pre-commit 依存関係スキャン
AI コーディングエージェント内でコード変更をスキャンして、コミット前に脆弱な依存関係をチェックする場合、GitHub MCP Server の dependabot ツールセットは依存関係追加を GitHub Advisory Database に対してチェックし、影響を受けるパッケージ、重大度、推奨される固定バージョンを含む構造化結果を返すことができます。より徹底的なコミット後チェックの場合、Dependabot CLI をローカルで実行して、変更前後の依存関係グラフの差分を取得することもできます。
Advanced Security プラグインをインストールします。これにより、専用の依存関係スキャンツールと /dependency-scanning スキルが提供されます。
GitHub Copilot CLI(シェル):
# GitHub MCP Server の dependabot ツールセットを有効化
copilot --add-github-mcp-toolset dependabot
GitHub Copilot CLI(copilot 内部):
> /plugin install advanced-security@copilot-plugins
Visual Studio Code:
- GitHub MCP Server ヘッダーに
"X-MCP-Toolsets": "dependabot"を追加するか、Copilot Chat でツールセットセレクターから Dependabot を選択します advanced-securityプラグインをインストールし、Copilot Chat で/dependency-scanningを使用します
プロンプト例:
このブランチで追加した依存関係で既知の脆弱性をスキャンして、コミット前にどのバージョンにアップグレードするかを教えてください。
参照: Advanced Security プラグイン — 依存関係スキャンスキル
GitHub MCP Server による依存関係スキャンがパブリックプレビューで利用可能(2026 年 5 月)で発表
リソース
references/dependabot-yml-reference.md— 完全な YAML オプションリファレンスreferences/pr-commands.md— 完全な PR コメントコマンドリファレンスreferences/example-configs.md— 実世界の設定例
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- github
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/github/awesome-copilot / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。