Respostas:
Qual a diferença entre eles?
A tagé um ponteiro para um commit específico. Esse ponteiro pode ser super carregado com algumas informações adicionais (identidade do criador da tag, uma descrição, uma assinatura GPG, ...).
A tagé um conceito de git, enquanto a Releaseé um conceito de nível superior do GitHub.
Conforme declarado na publicação oficial do blog do GitHub: "As liberações são objetos de primeira classe com changelogs e ativos binários que apresentam um histórico completo do projeto além dos artefatos do Git".
A Releaseé criado a partir de um existente tage expõe notas de versão e links para baixar o software ou o código fonte do GitHub.
Usando a API do GitHub, não consigo obter a lista de lançamentos, mas consigo a lista de tags.
A versão atual da API do GitHub não expõe uma maneira de gerenciar Releases (criar, atualizar, ...). Tenho certeza de que isso não deve demorar muito para ser exposto.
No entanto, atualmente é possível listar os releases e tags de um repositório específico.
Por exemplo, o URL abaixo listará os 6 lançamentos (a partir de hoje) do ReactiveUI
Considerando que este listará as 54 tags (a partir de hoje) do mesmo repositório
A criação de um release está atualmente em um processo que envolve uma ação manual (adicionando as notas de lançamento, fazendo upload dos pacotes, ...). Isso explica por que tags não são vistos de forma transparente como Releases.
Se você deseja ser notificado sobre as alterações da API, inscreva-se no blog GitHub API Changes .
No entanto, se você não puder esperar, a home page da API do GitHub indica "Se você tiver algum problema ou solicitação, entre em contato com o suporte ". Isso pode ser feito através de um email para support@github.com ou deste formulário de contato .
A API do GitHub agora permite manipular Releases. Veja o anúncio .
Releasepartir de uma existente tag. Releases são uma adição bastante recente. Talvez a equipe do Rails prefira seguir seu processo atual e publicar em seu blog sempre que uma nova versão for lançada (veja o anúncio 3.2.14 ).
tagé um conceito de git, enquanto a Releaseé um conceito de nível superior do GitHub ... A Releaseé criado a partir de um existente tage expõe notas de versão e links para baixar o software ou código-fonte do GitHub ".