with one click
batch-deps-upgrade
// Batch all open Dependabot dependency upgrade PRs into a single PR
// Batch all open Dependabot dependency upgrade PRs into a single PR
| name | batch-deps-upgrade |
| description | Batch all open Dependabot dependency upgrade PRs into a single PR |
| disable-model-invocation | true |
Batch all open Dependabot dependency upgrade PRs into a single PR for this repository.
Run: gh pr list --repo XRPLF/xrpl4j --label dependencies --state open --limit 500 --json number,title,headRefName,body,url
Parse each PR to extract coordinates and versions. Maven Dependabot PRs come in two formats:
Bump <groupId>:<artifactId> from <old> to <new> โ parse groupId, artifactId, old version, and new version from titleBump <propertyName> from <old> to <new> โ the property name maps to a <properties> entry in pom.xml (e.g., jackson.version, feign.version)If any PR can't be parsed from either title or body, flag it for manual review. Build a table of all proposed upgrades. Report the table to the user before proceeding.
Also note: Dependabot sometimes opens duplicate PRs for the same dependency across submodules (e.g., xrpl4j-core/org.assertj-assertj-core-3.27.7 and xrpl4j-integration-tests/org.assertj-assertj-core-3.27.7). Deduplicate โ if the version is managed centrally in the root pom.xml <dependencyManagement> or <properties>, one update covers all submodules. Mark the duplicates as No-op (managed by root pom).
deps/batch-deps-upgrade-YYYY-QN (use current year and quarter).pom.xml to determine where each dependency's version is controlled:
<properties> entry like <jackson.version>2.14.0</jackson.version> โ update the property value<dependencyManagement>: a <version> element โ update it directly<dependencyManagement>: a <dependency> with <type>pom</type><scope>import</scope> โ update its <version><build><pluginManagement><plugins> โ update the <version> elementmaven.compiler.source from pom.xml. If a dependency's new version requires a higher Java version than the project's compiler source, mark it as Skipped immediately โ do not attempt the upgrade. Known constraints: caffeine 3.x requires Java 11+, junit-bom 6.x requires Java 17+.pom.xml directly. For version properties, use mvn versions:set-property -Dproperty=<name> -DnewVersion=<version> -DprocessAllModules as an alternative to manual XML edits โ but verify the result looks correct before proceeding.mvn dependency:resolve -q to verify the dependency graph resolves without conflicts after applying all changes.Run the build and test suite in order:
mvn clean install
Do NOT commit or create a PR. Instead, generate the following outputs for the human to use:
Code changes note โ write a markdown file (.claude/skills/batch-deps-upgrade/code-changes.md) documenting every non-pom.xml source code change: what broke, why, and the minimal fix applied.
Commit message โ output a concise commit message the human can copy-paste. Format: chore(deps): quarterly batch dependency upgrade YYYY-QN followed by a brief summary of upgrades, skips, and no-ops.
PR description โ write a markdown file (.claude/skills/batch-deps-upgrade/pr-description.md) containing:
groupId:artifactId), From, To, Status, MajorVersionUpgrade
No if the major version number did not change. Otherwise Yes plus a link for each major version crossed โ link to the package's Maven Central release notes, GitHub releases page, or CHANGELOG.md. Verify each link returns HTTP 200 before including it.groupId:artifactId), #B (groupId:artifactId), ..." โ these stay open so Dependabot keeps rebasing them.