Last active
December 9, 2024 00:27
-
-
Save rponte/fdc0724dd984088606b0 to your computer and use it in GitHub Desktop.
Getting latest tag on git repository
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# The command finds the most recent tag that is reachable from a commit. | |
# If the tag points to the commit, then only the tag is shown. | |
# Otherwise, it suffixes the tag name with the number of additional commits on top of the tagged object | |
# and the abbreviated object name of the most recent commit. | |
git describe | |
# With --abbrev set to 0, the command can be used to find the closest tagname without any suffix: | |
git describe --abbrev=0 | |
# other examples | |
git describe --abbrev=0 --tags # gets tag from current branch | |
git describe --tags `git rev-list --tags --max-count=1` # gets tags across all branches, not just the current branch | |
@eggbean I like that idea, but it hits an auth wall for private/enterprise repos
@arderyp There are a few different ways to authenticate. Have you tried the gh
cli tool?
Thanks! :)
If the remote is GitHub and there's an associated release for the tag, why not just use the GitHub API?
$ tag="$(curl -s https://api.github.com/repos/box/box-java-sdk/releases/latest | jq -r '.tag_name')" $ echo $tag v4.0.1
@eggbean THANK YOU! This is the perfect solution!
All the other methods mentioned earlier were fetching the most recently created tag, NOT the latest release tag!
@fykaa No problem. I have a lot of GitHub Actions where I was using the GitHub API a lot to retrieve binaries. Maybe you will find them useful to look at as I was using regex to get the latest version.
https://github.com/eggbean/.dotfiles/tree/master/.github/workflows
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Just deleted a stupid long ass comment. Just want to warn about
git tag --sort=committerdate
it does not work correctly with the tag command for whatever reason. But this does work.git for-each-ref --sort=creatordate --format '%(refname) %(creatordate)' refs/tags
COMPLETELY different result that makes no sense to me
git tag --sort=committerdate
However
git tag --sort=taggerdate
is basically what I always looked for, what should be the default output forgit-tag
IMG. I also hate how it paginates the output withless
or whatever by default.Again, be warned about
committerdate
! There is somebody above that had issue as well I think because of this. Even if my commit of things I tagged days or maybe even a week later. I makes absolutely no sense to me WTF this produces. Maybe my memory is just bad and it all makes sense, well probably actually. I think to much about this shit.