Which release shipped this PR?

Paste the output of git tag --contains for a PR's merge commit and get the first release that shipped it, sorted by semantic version, or learn it isn't released yet. Runs in your browser. Free.

Free · Runs in your browser

How to check

  1. On the pull request page, copy the merge commit from the line “merged commit abc1234 into main” and paste it below.
  2. In a clone of the repository, run the command below and copy what it prints.
  3. Paste the output into the second box. Works for private repositories; nothing leaves your browser.
Command
git fetch --tags && git tag --contains <sha>
One tag per line. No output means no release contains the commit yet.

How to use it

01

Copy the merge commit

On the pull request page, the line "merged commit abc1234 into main" names it.

02

Run one git command

git tag --contains <sha> in your clone lists every tag that includes the change. Paste what it prints.

03

Get the answer

The first release that shipped it, the first stable one if that was a pre-release, or "not released yet".

How it works

When a pull request is merged, GitHub records a merge commit on the base branch (for squash merges, the squashed commit). A release contains the change if its tag includes that commit, which is what git tag --contains <sha> lists. git prints the tags alphabetically, so v2.10.0 comes before v2.9.0 and the first line is often not the first release. This tool sorts them by semantic version, groups tags per package in monorepos (cli-v1.2.0, sdk@3.0.0) and points out pre-releases. It runs in your browser: nothing is sent anywhere.

Why merged isn't released

Many projects merge to main for weeks before tagging a release. Announcing a feature at merge time sends people to a version they can't install yet. Check first, then write the announcement with the PR to X post generator.

DevRelay does this for every release. DevRelay holds announcements for merged pull requests until a release ships them, then drafts the content automatically. Merged is never treated as released. Start free.
FAQ

Questions about this tool.

01Why run git fetch --tags first?

A clone only knows the tags it has fetched. Without the latest tags, a recent release that contains the change won't be listed.

02What if the fix was backported to an older branch?

A cherry-picked backport is a different commit, so git tag --contains won't list the backport's tags for the original SHA. Check the backport PR's merge commit too.

03What if the command prints nothing?

No tag contains the commit yet, so the change is merged but not released. Press "The command printed nothing" to confirm, and hold the announcement.

04Is my input stored?

No. The tool runs entirely in your browser, so the tags you paste never leave the page.

05Does it work for private repositories?

Yes. You run the command in your own clone, so the tool never needs access to the repository.

Or let every release announce itself.

DevRelay holds announcements for merged pull requests until a release ships them, then drafts the content automatically. Merged is never treated as released.

No credit card · Nothing posts without your approval