Renovateをローカルデバッグする

注意事項

この記事は、Notion AIに対して

  • 問題と解決策の概要
  • 例示用のコード

を渡して生成した実験的な記事になります。

はじめに

Renovateを使用している場合、設定が正しく設定されているかどうかを確認することが重要です。
この記事では、ローカル環境でRenovateをデバッグする方法について説明します。

事前準備

以下の事前準備が必要です。

  • GitHubのClassic PATを生成して GITHUB_TOKEN などの環境変数に設定
    • dry-runだけならリポジトリへの読み取り権限のみで大丈夫なはず

確認手順

以下のコマンドを実行すれば良いです。

RENOVATE_CONFIG_FILE=.github/renovate.json5 \
  npx renovate \
    --token=$GITHUB_TOKEN \
    --schedule="" \
    --require-config=ignored \
    --dry-run=full \
    corrupt952/home-apps

statsや DRY-RUN に出ているメッセージで対象かどうか、PRが作成されるかどうかを確認できます。

$ RENOVATE_CONFIG_FILE=.github/renovate.json5 \
    npx renovate \
      --token=$GITHUB_TOKEN \
      --schedule="" \
      --require-config=ignored \
      --dry-run=full \
      corrupt952/home-apps
 INFO: Repository started (repository=corrupt952/home-apps)
       "renovateVersion": "35.71.5"
 INFO: Dependency extraction complete (repository=corrupt952/home-apps, baseBranch=main)
       "stats": {
         "managers": {
           "argocd": {"fileCount": 5, "depCount": 6},
           "kubernetes": {"fileCount": 1, "depCount": 2},
           "regex": {"fileCount": 5, "depCount": 15}
         },
         "total": {"fileCount": 11, "depCount": 23}
       }
 INFO: DRY-RUN: Would ensure Dependency Dashboard (repository=corrupt952/home-apps)
       "title": "Dependency Dashboard"
 INFO: DRY-RUN: Would save repository cache. (repository=corrupt952/home-apps)
 INFO: Repository finished (repository=corrupt952/home-apps)
       "cloned": true,
       "durationMs": 6888

コマンドの簡単な解説

以下は、上記の確認手順に記載のあるコマンドの解説です。

  • RENOVATE_CONFIG_FILE=.github/renovate.json5
    • 動作確認をしたい設定ファイルのパスを指定しています。
    • 設定ファイルには、Renovateの動作に必要な情報が含まれています。
    • 詳細は Renovateの公式ドキュメント を参照してください。
  • npx renovate
    • renovateを個別にインストールせずに手軽に試したいのでnpxを使ってrenovateを実行しています。
  • -token=$GITHUB_TOKEN
  • -schedule=""
    • scheduleが設定で定義されている場合に実行されない場合があるため、空文字列を指定しています。
  • -require-config=ignored
    • リモートリポジトリの設定ファイルを読み込まないようにしています。
    • リモートリポジトリの設定ファイルを読み込むと、ローカルの設定ファイルとマージされるため、不必要なPRが生成される可能性があります。
    • 詳細は Renovateの公式ドキュメント を参照してください。
  • -dry-run=full
    • 実際にPRを作成、更新、削除はせずに標準出力にメッセージを出させています。
    • 詳細は Renovateの公式ドキュメント を参照してください。
  • corrupt952/home-apps
    • Renovateの対象となるレポジトリを指定しています。
    • この例では corrupt952/home-apps を対象にしています。

動作確認をする時にありそうな他のケース

デフォルトブランチ以外のブランチを検証したい

RENOVATE_BASE_BRANCHES` を指定して実行すれば良いです。

# devブランチを対象とする場合
RENOVATE_BASE_BRANCHES=dev \
RENOVATE_CONFIG_FILE=.github/renovate.json5 \
  npx renovate \
    --token=$GITHUB_TOKEN \
    --schedule="" \
    --require-config=ignored \
    --dry-run=full \
    corrupt952/home-apps

PRを作成させたい

PATがレポへの書き込み権限があることを確認し、--dry-run オプションを外してください。

RENOVATE_CONFIG_FILE=.github/renovate.json5 \
  npx renovate \
    --token=$GITHUB_TOKEN \
    --schedule="" \
    --require-config=ignored \
    corrupt952/home-apps

おわりに

この記事では、Renovateをローカルデバッグする方法について説明しました。
Renovateを使用している場合、設定が正しく設定されているかどうかを確認することが重要です。
Renovateを正常に使用するために、この記事で説明した手順を実行してください。