Skip to content

chore(ci): only raise Dependabot PRs for major action bumps - #1130

Merged
timtebeek merged 2 commits into
mainfrom
tim/dependabot-ignore-actions-minor-patch
Aug 18, 2026
Merged

chore(ci): only raise Dependabot PRs for major action bumps#1130
timtebeek merged 2 commits into
mainfrom
tim/dependabot-ignore-actions-minor-patch

Conversation

@timtebeek

@timtebeek timtebeek commented Aug 18, 2026

Copy link
Copy Markdown
Member

What's changed?

Ignore semver-minor and semver-patch updates for the four actions this repo references by floating major tag, so Dependabot only opens PRs for major bumps on those.

What's your motivation?

Every versioned action reference in this repo is a floating major tag:

.github/workflows/properties.yml:16  actions/checkout@v7
.github/workflows/properties.yml:17  actions/setup-java@v5
.github/workflows/properties.yml:21  gradle/actions/setup-gradle@v6
.github/workflows/properties.yml:32  peter-evans/create-pull-request@v8
.github/workflows/ci.yml:23          openrewrite/gh-automation/...@main

Each author moves that tag forward as minor and patch releases ship, so CI already tracks them without any change here — all four currently resolve to the latest release:

action @vN resolves to latest release
actions/checkout@v7 3d3c42e5 v7.0.1 — same commit
actions/setup-java@v5 b6effb05 v5.7.0 — same commit
gradle/actions@v6 9c971963 v6.3.0 — same commit
peter-evans/create-pull-request@v8 5f6978fa v8.1.1 — same commit

When Dependabot proposes @v6 -> @v6.2.0 it converts a self-updating ref into a pin, which is the opposite of what we want. #1114 is a concrete example: v6 already resolves to v6.3.0, so merging it would have downgraded setup-gradle to v6.2.0 and frozen it there until the next nag. Closed in favour of this.

Major bumps (v6 -> v7) are the one thing a floating tag cannot pick up on its own, so those keep raising PRs.

Anything in particular you'd like reviewers to focus on?

The ignore list enumerates the four actions rather than using dependency-name: "*". A blanket rule would also silence minor and patch updates for a future action that does not maintain a moving major tag, and that failure mode is silent. With an explicit list, forgetting to add an entry just means a noisy PR — visible and easy to fix.

Worth noting "official GitHub actions" would have been the wrong axis to split on: gradle/actions and peter-evans/create-pull-request are third-party and both float correctly, while an actions/* wildcard would have excluded the one that prompted this.

Also note this is not a supply-chain tradeoff: nothing here is SHA-pinned today, so the churn was not buying us pinning guarantees either.

Checklist

  • Config-only change; no recipes or tests affected

Workflows reference floating major tags (`actions/checkout@v7`,
`gradle/actions/setup-gradle@v6`), which the action authors move forward
as minor and patch releases ship. Dependabot proposing `@v6` -> `@v6.2.0`
converts a self-updating ref into a pin, and in that case would have
downgraded CI, since `v6` already resolves to `v6.3.0`.

Ignore minor and patch updates so Dependabot only raises the major bumps
a floating tag cannot pick up on its own.
A blanket `dependency-name: "*"` would also silence minor and patch
updates for actions that do not maintain a moving major tag, and that
failure mode is silent. Listing them means a newly added action keeps the
default behaviour: a noisy PR is easy to spot and fix, silent staleness
is not.
@timtebeek
timtebeek merged commit 23e2757 into main Aug 18, 2026
2 checks passed
@timtebeek
timtebeek deleted the tim/dependabot-ignore-actions-minor-patch branch August 18, 2026 20:08
@github-project-automation github-project-automation Bot moved this from In Progress to Done in OpenRewrite Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant