Skip to content

Instantly share code, notes, and snippets.

@kobitoDevelopment
Created February 8, 2026 16:15
Show Gist options
  • Select an option

  • Save kobitoDevelopment/f47b044455c6406b77b1dce5efdbd28b to your computer and use it in GitHub Desktop.

Select an option

Save kobitoDevelopment/f47b044455c6406b77b1dce5efdbd28b to your computer and use it in GitHub Desktop.

Dependabot 導入ガイド

GitHub Dependabot による依存関係の自動更新管理。

目次

  1. Dependabot とは
  2. 導入手順
  3. 設定オプション
  4. 運用のポイント
  5. トラブルシューティング

Dependabot とは

Dependabot は GitHub が提供する依存関係の自動更新ツール。以下の機能を提供する。

主な機能

機能 説明
Version Updates 依存パッケージの新バージョンを検出し、更新PRを自動作成
Security Updates 脆弱性が発見されたパッケージの修正PRを自動作成
Alerts 脆弱性のあるパッケージを検出し、通知

特徴

  • 手動での依存関係更新作業が不要
  • セキュリティ脆弱性への迅速な対応
  • 更新履歴がPRとして記録される
  • CI/CDと連携した自動テストが可能

導入手順

1. 設定ファイルの作成

.github/dependabot.yml を作成する。

version: 2
updates:
  # npm パッケージの更新
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      day: "monday"
      timezone: "Asia/Tokyo"
      time: "09:00"
    target-branch: "main"
    open-pull-requests-limit: 10
    labels:
      - "dependencies"

  # GitHub Actions の更新
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
      day: "monday"
      timezone: "Asia/Tokyo"
      time: "09:00"
    labels:
      - "dependencies"
      - "github-actions"

3. 確認

GitHub リポジトリの Settings → Code security → Dependabot で有効化を確認。

設定オプション

必須オプション

オプション 説明
version 設定ファイルのバージョン 2
package-ecosystem パッケージマネージャーの種類 npm, docker, github-actions
directory パッケージ定義ファイルの場所 /, /packages/app
schedule.interval 更新チェックの頻度 daily, weekly, monthly

スケジュール設定

schedule:
  interval: "weekly" # daily, weekly, monthly
  day: "monday" # 曜日指定(weekly時)
  time: "09:00" # 時刻指定
  timezone: "Asia/Tokyo" # タイムゾーン

PR 制御

# 同時にオープンできるPR数の上限(デフォルト: 5)
open-pull-requests-limit: 10

# PRの対象ブランチ
target-branch: "develop"

# PRに付与するラベル
labels:
  - "dependencies"
  - "automerge"

# PRのレビュワー
reviewers:
  - "username"
  - "org/team-name"

# PRのアサイニー
assignees:
  - "username"

更新対象の制御

# 特定パッケージを無視
ignore:
  - dependency-name: "lodash"
  - dependency-name: "aws-sdk"
    versions: ["3.x"]  # 特定バージョンのみ無視

# 特定パッケージのみ対象
allow:
  - dependency-name: "react"
  - dependency-name: "next"

# 更新タイプの制限
ignore:
  - dependency-name: "*"
    update-types: ["version-update:semver-major"]  # メジャー更新を無視

グループ化

関連パッケージをまとめて1つのPRにする。

groups:
  # React関連をグループ化
  react:
    patterns:
      - "react*"
      - "@types/react*"

  # ESLint関連をグループ化
  eslint:
    patterns:
      - "eslint*"
      - "@typescript-eslint/*"

  # テスト関連をグループ化
  testing:
    patterns:
      - "jest*"
      - "@testing-library/*"
      - "vitest*"

コミットメッセージのカスタマイズ

commit-message:
  prefix: "chore"
  prefix-development: "chore"
  include: "scope"

結果: chore(deps): bump react from 18.2.0 to 18.3.0

運用のポイント

推奨設定

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      day: "monday"
      timezone: "Asia/Tokyo"
      time: "09:00"
    target-branch: "main"
    open-pull-requests-limit: 10
    labels:
      - "dependencies"
    groups:
      # 本番依存関係
      production:
        dependency-type: "production"
      # 開発依存関係
      development:
        dependency-type: "development"
    ignore:
      # メジャーバージョン更新は手動で対応
      - dependency-name: "*"
        update-types: ["version-update:semver-major"]

自動マージの設定

GitHub Actions と組み合わせてパッチ・マイナー更新を自動マージする。

# .github/workflows/dependabot-auto-merge.yml
name: Dependabot Auto Merge

on: pull_request

permissions:
  contents: write
  pull-requests: write

jobs:
  dependabot:
    runs-on: ubuntu-latest
    if: github.actor == 'dependabot[bot]'
    steps:
      - name: Dependabot metadata
        id: metadata
        uses: dependabot/fetch-metadata@v2
        with:
          github-token: "${{ secrets.GITHUB_TOKEN }}"

      - name: Auto-merge minor and patch updates
        if: steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor'
        run: gh pr merge --auto --squash "$PR_URL"
        env:
          PR_URL: ${{ github.event.pull_request.html_url }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

セキュリティアップデートの優先

セキュリティアップデートは自動的に高優先度で処理される。 Settings → Code security → Dependabot security updates で有効化する。

PR レビューのポイント

  1. CHANGELOG を確認: 破壊的変更がないか確認
  2. CI テスト結果を確認: 全テストがパスしているか
  3. 依存関係の互換性: 他のパッケージとの互換性
  4. セキュリティ修正: セキュリティ関連は優先的にマージ

トラブルシューティング

PR が作成されない

  1. 設定ファイルの構文エラー

    • YAML の構文が正しいか確認
    • version: 2 が指定されているか確認
  2. ディレクトリの指定ミス

    • package.json の場所が正しいか確認
  3. PR上限に達している

    • open-pull-requests-limit を確認
    • 既存のDependabot PRをマージまたはクローズ

確認方法

GitHub リポジトリで以下を確認:

  • Insights → Dependency graph → Dependabot: 最後の実行状況
  • Security → Dependabot alerts: 検出された脆弱性

ログの確認

Settings → Code security → Dependabot → View logs で実行ログを確認できる。

参考リンク

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment