mcpField
M
merge-renovate-pull-requests

merge-renovate-pull-requests

github.com/kjetilhartveit開発2152 回インストール2 日前に更新
リポジトリ

merge-renovate-pull-requests について

Renovatebotの依存関係更新PRを扱う保守スキルです。定期更新を行うエージェント向けに、チェック結果別の処理と検証、マージ記録を定め、重大な変更や解決困難な問題はユーザーに委ねます。

主な機能

  1. 01Renovatebotが作成したオープンPRのみ処理
  2. 02チェック成功・失敗を分けて対応
  3. 03依存関係をインストールし型チェック、Lint、ビルドを実行
  4. 04必要に応じて修正しCIを確認
  5. 05AGENT_MERGE.mdにエージェントのマージを記録
  6. 06重大・未解決の変更はユーザーに委任

活用シーン

  1. 01自動マージされない依存更新への対応
  2. 02更新後の検証とチェック失敗の修正
  3. 03エージェントが行った依存マージの記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/kjetilhartveit/kjetils-skills --skill merge-renovate-pull-requests

インストール後、Claude Code で/merge-renovate-pull-requestsを入力して読み込まれたか確認します。

詳細

Renovate のプルリクエストをマージする

使用するタイミング:

定期的なメンテナンスを行うときや、Renovatebot が自動マージされていないプルリクエストを作成したときに使用します。メジャーバージョンの更新である場合、チェックが失敗した場合、またはその他の理由により、プルリクエストが自動マージされていない可能性があります。

注意事項:

  • Renovatebot が作成したものではないプルリクエストは処理しないでください(ユーザー名は renovate、作成者 ID は app/renovate の場合があります)。
  • オープン状態のプルリクエストのみを処理してください。
  • 破壊的変更を伴うバージョン更新(メジャーバージョンの更新、またはメジャーバージョンが 0 の場合)では、すべての破壊的変更と、正しく安全に更新する方法を確認して理解することが非常に重要です。破壊的変更や、場合によっては公式ドキュメントへのリンクは、プルリクエストの説明または更新対象の依存関係の GitHub リポジトリにある変更履歴で確認できます。利用可能な場合は、公式の移行ガイドに従ってください。変更が大規模で、アーキテクチャに影響する場合や、データベースまたは本番システムなどの外部システムでの移行が必要な場合は、ユーザーが手動で解決できるようにしてください。これについて説明するコメントをプルリクエストに残してから、現在のワークフローを中止してください。

ツール:

GitHub CLI を使用して、GitHub リポジトリからプルリクエストを取得したり、チェックの結果などを確認したりできます。

マージの例外:

  • eslint / eslint monorepo は、バグが修正されていないため、まだ >= v10 に更新しないでください。

エージェントによるマージのログの追加:

  1. エージェントによるマージを記録する場合は、次の情報をリポジトリのルートフォルダーにある AGENT_MERGE.md に追記します。

    # {agent merge concise title}
    
    Date: {date and time}
    
    {summary of changes}
    
    ## Breaking changes
    
    {bullet list of the breaking changes; include a short description of the actual breaking changes and including links to official sources for reading more}
    
    ## Pull requests
    
    {bullet list with links to pull requests}
    
    {comments header and comments if there are any}
    
    {separator between entries, use the `---` separator}
    
  2. 変更をコミットしてプッシュします。

主なワークフロー:

  • ワークフローを開始する前に、次のことを確認してください。
    1. main ブランチにいることを確認し、最新の git 変更をプルします。
    2. 最新のパッケージバージョンをインストールします(例:pnpm install)。
    3. agent-merge-{yyyy}-{MM}-{hh}-{mm}-{ss} 形式の名前(プレースホルダー/変数は現在の UTC 日時に置き換えます)の新しいブランチを作成し、依存関係(複数ある場合は主要なもの)を含むタイトルの末尾に (agent merge) を付けたプルリクエストを作成します。
      • ワークフロー中に作業するのはこのブランチ/プルリクエストです。個々の更新/コミットを main ブランチに直接マージせず、オープン状態のプルリクエストをすべて処理した後に、プルリクエストを main ブランチにマージしてください。
  • 適切なタイミングでこまめにコミットしてください。
  • 処理済みのプルリクエストは閉じないでください。プルリクエストがマージされると、これらは Renovatebot によって自動的に処理されます。
  • ブランチは削除しないでください。

1. すべてのチェックに合格したオープンなプルリクエストの処理:

  1. すべてのチェックに合格した、Renovatebot によるオープンなプルリクエストをマージします。
  2. 最新のパッケージバージョンをインストールします(例:pnpm install)。
    • マージコンフリクトが発生した場合に備えて、最新の推移的依存関係を使用していることを確認してください。
  3. 型チェック、Lint、ビルドを実行します。いずれかが失敗した場合は、先に修正してください。
  4. 新しいブランチがプッシュされていることを確認し、CI/GitHub ワークフローの結果/チェックを確認します。CI でジョブが失敗した場合は、手順 3 に戻って再試行します。
    • 妥当な労力の範囲内でエラーを修正できない場合は、ユーザーが手動で解決できるようにしてください。これについて説明するコメントをプルリクエストに残してから、現在のワークフローを中止してください。
  5. エージェントによるマージを記録します。

2. チェックに失敗したオープンなプルリクエストの処理:

  1. チェックに失敗したオープンなプルリクエストを、1 件ずつ処理します。
  2. renovatebot によるチェックに失敗したプルリクエストごとに、以下を行います。
    1. プルリクエストをマージします。
    2. 最新のパッケージバージョンをインストールします(例:pnpm install)。
      • マージ時に競合が発生した場合に備えて、最新の推移的依存関係を使用していることを確認します。
    3. 型チェック、リンティング、ビルドを実行します。いずれかに失敗した場合は、先に修正します。
    4. 修正をプッシュし、CI/GitHub ワークフローの結果を確認します。CI のジョブに失敗した場合は、ステップ 3 に戻り(個々のプルリクエストについて)、再試行します。
      • 解決できない場合(サードパーティ依存関係に未解決の問題がある場合など)は、ユーザーが手動で解決できるようにします。その旨を説明するコメントをプルリクエストに残し、現在のワークフローを中断します。
  3. エージェントによるマージを記録します。

3. すべてのオープンなプルリクエストを処理した後:

  1. すべてのオープンなプルリクエストの処理が完了し、チェックにすべて合格したら、新しいブランチを main ブランチにマージします。

コメント