Gere automaticamente releases do seu projeto no GitHub usando o Auto Release.
Use o sumário abaixo para escolher como quer aprender a usar o Auto Release.
- GitHub Actions - Automatize a criação dos seus releases com o CI/CD do GitHub.
- CLI (Interface de Linha de Comando) - Crie os seus releases a partir do seu terminal.
Depois, veja como escrever as suas mensagens de commit para usar todo o potencial do Auto Release clicando aqui.
- Auto Release
Para começar a usar o Auto Release no GitHub Actions é muito fácil, siga os passos abaixo e diga adeus a escrever releases manualmente.
Acesse o seu repositório no GitHub e no menu suspenso "Add file", vá em "Create new file".

Em "Name your file..." digite o seguinte: .github/workflows/main.yml.
Ficará semelhante a imagem abaixo:
Copie o código abaixo e cole no corpo do arquivo no GitHub.
# .github/workflows/main.yml
name: Criar Release
on:
push:
branches:
- main
jobs:
create-release:
name: Criar Release
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Criar Release
uses: kempdec/autorelease-action@v2
env:
AutoRelease_Token: ${{ secrets.GITHUB_TOKEN }} # Este token é fornecido pelo GitHub Actions, você não precisa criar seu próprio token.Clique no botão "Commit changes".
Escreva a sua mensagem de commit e clique mais uma vez em "Commit changes".
Pronto! Isso já é o suficiente para que o Auto Release comece a gerar automaticamente os releases do seu repositório no GitHub. Toda vez que um push for feito para o branch main, um release será criado.
Veja como configurar e costumizar o Auto Release para que atenda melhor as suas necessidades e da sua equipe clicando aqui.
Caso você queira disparar a ação de criação da release manualmente, troque o conteúdo de on: push para on: workflow_dispatch.
# .github/workflows/main.yml
name: Criar Release
on:
workflow_dispatch:
jobs:
create-release:
name: Criar Release
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Criar Release
uses: kempdec/autorelease-action@v2
env:
AutoRelease_Token: ${{ secrets.GITHUB_TOKEN }} # Este token é fornecido pelo GitHub Actions, você não precisa criar seu próprio token.Ou se preferir, o release pode ser criado quando você fizer o push de uma tag de versão para o repositório. Nesse caso troque o conteúdo de on: push: branches para on: push: tags e adicione a variável de ambiente AutoRelease_Version.
# .github/workflows/main.yml
name: Criar Release
on:
push:
tags:
- "v*" # Tags que iniciarem com v, como v1.0.0, v2.3.5-beta.1.
jobs:
create-release:
name: Criar Release
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Criar Release
uses: kempdec/autorelease-action@v2
env:
AutoRelease_Token: ${{ secrets.GITHUB_TOKEN }} # Este token é fornecido pelo GitHub Actions, você não precisa criar seu próprio token.
AutoRelease_Version: ${{ github.ref_name }}Instale a ferramenta a partir do SDK do .NET.
dotnet tool install -g autoreleaseDigite o comando autorelease --help em seu Terminal para que seja impresso a ajuda.
Para imprimir a ajuda de algum comando, informe ele e em seguida a opção --help.
Exemplo: autorelease create --help.
A CLI também funciona com um arquivo de configuração do Auto Release. Nos exemplos acima, o arquivo deveria estar em C:\Users\ceo, que é o caminho em que o terminal se encontra.
Veja como usar um arquivo de configuração clicando aqui.
O Auto Release usa o padrão do Conventional Commits (com poucas diferenças) para ler os commits e gerar o release automaticamente.
Ou seja, a mensagem do commit deve ser estruturada da seguinte forma:
Obs.: O Auto Release ainda não oferece suporte a escopos, mas em breve será adicionado o recurso.
<tipo>: <descrição>
[corpo opcional]
[rodapé(s) opcional(is)]Os tipos feat e fix e o operador ! funcionam como está descrito em Conventional Commits, com as seguintes diferenças:
-
Caso a propriedade
Types(arquivo) outypes(CLI) seja especificada, o primeiro tipo terá o funcionamento defeat, de incrementar a versãominore todos os demais tipos incrementarão a versãopatch. -
O texto
BREAKING CHANGE:não é utilizado como sinalizador para quebra de compatbilidade, somente o operador!, mas você pode usar os 2 em conjunto.Exemplo da mensagem de commit:
fix: Corrigir a criação de artigos. Corrigido um problema em que quando a data de publicação era inferior a data de criação, o artigo não era criado. Obs.: Somente de exemplo.As notas geradas serão semelhantes a abaixo:
# My Project v1.0.0 (2024-01-01) # Correções - Corrigido um problema em que quando a data de publicação era inferior a data de criação, o artigo não era criado. Obs.: Somente de exemplo.
Você pode utilizar operadores para que o Auto Release trate as suas mensagens de commit de maneira diferente. Atualmente é possível utilizar somente um operador por vez.
Para utilizar um operador, coloque-o no final do tipo da mensagem de commit e antes do separador : (dois pontos).
Exemplo com o operador ^:
feat^: Essa descrição será ignorada.
Somente esse corpo será adicionado as notas do release.Os operadores disponíveis são:
| Operador | Descrição |
|---|---|
! |
A mensagem de commit traz uma quebra de compatibilidade e a versão major deve ser incrementada. |
# |
A mensagem de commit deve ser ignorada e não deve ser adicionada as notas do release. |
^ |
A mensagem de commit deve ter somente o seu corpo adicionado as notas de release, ou seja, a sua descrição deve ser ignorada. |
Uma das maneiras de configurar o Auto Release, é adicionando um arquivo com o nome autorelease.config.json na raiz do seu projeto.
Exemplo: Se o seu projeto está em
D:/MeuProjeto, é nela que o arquivo deverá ser criado.
Um modelo atualizado com todas as opções do autorelease.config.json pode ser encontrado clicando aqui.
Observações:
- Todas as propriedades de configuração são OPCIONAIS.
- A configuração abaixo é apenas um exemplo e NÃO deve ser usada em seu projeto, a menos que entenda o que está fazendo.
- Caso você esteja utilizando o Auto Release no GitHub Actions, as propriedades
NoteCommandeVersionCommanddevem ser ignoradas.
Você pode definir variáveis de ambiente com o prefixo AutoRelease_ para configurar o Auto Release.
Para configurar o repositório, por exemplo, o nome da variável de ambiente seria AutoRelease_Repo.
// Essa variável de ambiente:
AutoRelease_Repo="kempdec/MyRepository"
// É equivalente a essa propriedade no arquivo de configuração:
{
"Repo": "kempdec/MyRepository"
}Use __ (dois _) no nome da variável de ambiente para definir uma propriedade de um objeto.
// Essa variável de ambiente:
AutoRelease_CreateCommand__Types="feat=\"Novidades\" fix=\"Correções\" chore=\"Notas técnicas\""
// É equivalente a essa propriedade no arquivo de configuração:
{
"CreateCommand": {
"Types": [
"types=Novidades",
"fix=Correções",
"chore=Notas técnicas"
]
}
}| Arquivo | CLI | Tipo | Padrão | Sumário |
|---|---|---|---|---|
Token |
token |
string |
null! |
[OBRIGATÓRIA NO CLI]O token para acesso ao repositório no GitHub. Exemplo: ghp_1DF8350tVc1Ry0IBuWH3uh8cTRpofs0FY0Iv. |
Repo |
repo |
string |
null! |
[OBRIGATÓRIA NO CLI]O repositório que contém os commits no GitHub. Exemplo: kempdec/MyRepository. |
Branch |
branch |
string? |
null |
O branch do repositório no GitHub. Exemplo: main. |
| Arquivo | CLI | Tipo | Padrão | Sumário |
|---|---|---|---|---|
Version |
version |
string? |
null |
A versão do release (SemVer 2.0). Quando especificada, a versão do release não será gerada automaticamente. O uso dessa propriedade é recomendado somente de forma dinâmica, como em uma variável de ambiente definida através do GitHub Actions. Exemplo: 1.3.0. |
ProjectName |
project-name |
string? |
null |
O nome do projeto. Ele pode ser utilizado em alguns lugares, como parte do título do release. Exemplo: Meu Repositório. |
Draft |
draft |
boolean |
false |
Um sinalizador indicando se o release é um rascunho. Exemplo: false. |
PreRelease |
pre-release |
boolean |
false |
Um sinalizador indicando se o release é um pre-release. Exemplo: false. |
OutputType |
output-type |
string |
Id |
O tipo de saída da criação automática do release. Os valores aceitos são: Id, UploadUrl ou Version |
| Arquivo | CLI | Tipo | Padrão | Sumário |
|---|---|---|---|---|
Version |
version |
string? |
null |
A versão do release (SemVer 2.0). Quando especificado, as notas do release serão geradas com base nas mensagens de commit desde a versão anterior da versão especificada. Exemplo: 1.3.0. |
| Arquivo | CLI | Tipo | Padrão | Sumário |
|---|---|---|---|---|
Version |
version |
string? |
null |
A versão do release (SemVer 2.0). Quando especificada, a versão do release não será gerada automaticamente. O uso dessa propriedade é recomendado somente de forma dinâmica, como em uma variável de ambiente definida através do GitHub Actions. Exemplo: 1.3.0. |
Types |
types |
string[] |
null |
Os tipos das mensagens de commit. Exemplo arquivo: ["feat=Novidades", "fix=Correções", "chore=Notas técnicas"].Exemplo CLI: feat="Novidades" fix="Correções" chore="Notas técnicas".A ordem dos tipos definirá também a ordem que são escritos nas notas do release. Neste exemplo, as Novidades serão listadas primeiro. |
Replaces |
replaces |
object |
null |
As substituições do início das mensagens de commit. Exemplo arquivo: {"Adicionar a ": "Foi adicionada a ", "Corrigir": "Foi corrigido"}.Exemplo CLI: "Adicionar a "="Foi adicionada a " "Corrigir"="Foi corrigido".Usando a seguinte mensagem de commit como exemplo: feat: Adicionar a página de cadastro de usuários.Na geração das notas do release, ela seria substituída por: Foi adicionada a página de cadastro de usuários. |
Ignores |
ignores |
string[] |
null |
Os inícios das mensagens de commit que serão ignoradas. Exemplo arquivo: ["Refatorar.", "Atualizar a versão"].Exemplo CLI: "Refatorar" "Atualizar a versão".Usando a seguinte mensagem de commit como exemplo: chore: Atualizar a versão do pacote.Ela seria ignorada, por começar com Atualizar a versão.Você também pode ignorar uma mensagem de commit usando o operador #.No exemplo abaixo, a mensagem de commit será ignorada, independente de estar ou não em Ignores:chore#: Atualizar a versão do pacote. |
ShowAuthor |
show-author |
boolean |
false |
Um sinalizador indicando se o autor deve ser exibido no final das mensagens de commit. Exemplo: false. |
| Arquivo | CLI | Tipo | Padrão | Sumário |
|---|---|---|---|---|
FirstVersion |
first-version |
string |
1.0.0 |
A primeira versão do repositório (SemVer 2.0). Essa propriedade é utilizada na criação do primeiro release. Exemplo: 0.1.0. |
VersionPrefix |
version-prefix |
string |
v |
O prefixo das versões do repositório. Exemplo: v. |
- KempDec - Mantedora do projeto de código aberto.
- Vinícius Lima - Desenvolvedor .NET C#.





