66
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DMM WEBCAMPAdvent Calendar 2023

Day 3

【Ruby on Rails】dependabotを設定しよう

Last updated at Posted at 2023-12-02

まえがき

本記事は、DMM WEBCAMP Advent Calendar 2023 3日目記事です。

Ruby on Railsを中心に、DWCメンター・卒業生が記事を投稿しておりますので、是非他の記事もご確認ください!

はじめに

こんにちは、DMM WEBCAMP メンターの @ukwhatn です。

昨日に引き続いての担当となりますが、今日はRuby on Railsにおけるdependabotの使い方について説明していきます。

Depandabotとは?

Depandabotとは、GitHubが提供しているボットツールで、プロジェクトが依存しているパッケージ(Gemなど)の脆弱性やバージョンアップを自動で検知し、アップデートのためのPull Requestを自動作成してくれるものです。

また、非常に多くの言語やパッケージ管理システムに対応しており、Gemfileやpackage.jsonなどを読んで依存パッケージを解析してくれます。

使い方もシンプルで、.github/depandabot.ymlに構成設定を記載し、リポジトリのSettingsからDependabotを有効化することでセットアップできます。

RailsにおけるDependabotの構成設定

私がよく使う.github/depandabot.ymlの内容を示します。

version: 2
updates:
  - package-ecosystem: "bundler"
    directory: "/"
    schedule:
      interval: "daily"
    ignore:
      - dependency-name: "rails"
        update-types: ["version-update:semver-major"]

おそらく読めばわかるのではないかと思いますが、

  • package-ecosystem: "bundler"
    • bundler(Gemfile)によってバージョン管理されたプロジェクトであることを示す
      • これにより、Gemfileを勝手に読みに行くようになります
  • directory: "/"
    • Gemfileが置いてあるディレクトリを指定
  • schedule:
    • Dependabotの起動タイミングを指定
      • 今回は1日1回にしています
  • ignore:
    • dependency-name: "rails"
      • update-types: ["version-update:semver-major", "version-update:semver-minor"]
        • ここでは、Gem"rails"のmajor-update(5.x→6.xなど)/minor-update(6.0から6.1など)の両方をignoreしています
          • この場合、6.0.16.0.2などのアップデートは検出されます
          • 必要であればminorだけignoreから外すなど、適宜変更してください

.... までの設定をこの数行で行っています。

更にカスタマイズしたい場合は、 公式docsを確認してください。

導入手順

ここからは、具体的な導入手順について説明します。

まず、導入したいリポジトリのSettingsからCode security and analysisを開きます。

image.png

Dependabot version updatesEnableにするとエディタが開きますので、上記の構成設定を投入し、commitします。
image.png

これだけでDependabot version updatesの導入は完了です。

脆弱性の検出まで行いたい場合は、先程のページからDependabot security updatesを有効化しましょう。
security updatesDependency graphおよびDependabot alertsに依存しているので、勝手に全部Enableになります。

このような状態になったら全て完了となります!
image.png

あとは、Dependabotが定期的にバージョンアップの検出を行い、PRを作ってくれるのを待つだけです。
ほっとくと一瞬で貯まるので、定期的に確認しましょう!
image.png


以上、ハンズオン的な紹介となりましたので、詳しく知りたい方は以下の公式ドキュメントを確認してみてください!

66
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
66
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?