What's the difference between tag and release?
Using GitHub's API, I can't get the releases list, but I can get the tags list.
What's the difference between them?
Solution 1:
What's the difference between them?
A tag
is a pointer to a specific commit. This pointer can be super charged with some additional information (identity of the creator of the tag, a description, a GPG signature, ...).
A tag
is a git concept whereas a Release
is GitHub higher level concept.
As stated in the official announcement post from the GitHub blog: "Releases are first-class objects with changelogs and binary assets that present a full project history beyond Git artifacts."
A Release
is created from an existing tag
and exposes release notes and links to download the software or source code from GitHub.
Using GitHub's API, I can't get the releases list, but I can get the tags list.
The current version of the GitHub API doesn't expose a way to manage Release
s (create, update, ...). I'm pretty sure that this shouldn't take too long before it's exposed.
However, it's currently possible to list the releases and tags of a specific repository.
For instance, the url below will list the 6 releases (as of today) from ReactiveUI
- https://api.github.com/repos/reactiveui/ReactiveUI/releases
Whereas this one will list the 54 tags (as of today) from the same repository
- https://api.github.com/repos/reactiveui/ReactiveUI/tags
Creating a release is currently in a process which involves a manual action (adding the release notes, uploading the packages, ...). This explains why tag
s are not transparently seen as Release
s.
If you want to be notified of the API changes, you can subscribe to the GitHub API Changes blog.
However, if you can't wait, the GitHub API home page states "If you have any problems or requests please contact support.". This can be done through an email to [email protected] or this contact form.
Update:
The GitHub API now allows to manipulate Release
s. See the announcement.