
Geração de Changelog Totalmente Automatizada - Esta GEM gera um arquivo Changelog com base em tags , problemas e solicitações de puxar mescladas (e as divide em listas separadas de acordo com rótulos) do GitHub.
Como você não precisa preencher seu CHANGELOG.md manualmente agora: basta executar o script, relaxar e pegar uma xícara de ☕ antes do próximo lançamento! ?
Para facilitar para os usuários e colaboradores ver com precisão quais mudanças notáveis foram feitas entre cada versão (ou versão) do projeto.
Porque as ferramentas de software são para pessoas . "Changelogs facilita para os usuários e colaboradores ver com precisão quais mudanças notáveis foram feitas entre cada liberação (ou versão) do projeto".
➡️ https://keepachangelog.com
O Github Changelog Generator é um programa de rubi, distribuído como um rubygem. A página inicial do Ruby Language possui uma página de instalação.
Instale a jóia como:
$ gem install github_changelog_generator
Dependendo do seu sistema, pode ser necessário executar o shell como administrador (Windows) ou usar sudo gem install github_changelog_generator (linux).
github_changelog_generator -u github_project_namespace -p github_project
(onde o espaço para nome do projeto provavelmente é seu nome de usuário, se for um projeto que você possui, mas também pode ser o espaço para nome do projeto)
Usar o Docker é uma alternativa para a instalação do Ruby e a Gem.
Exemplo de invocação:
$ docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator
Para os repositórios do GitHub Enterprise, especifique as opções --github-site e --github-api :
$ github_changelog_generator --github-site="https://github.yoursite.com"
--github-api="https://github.yoursite.com/api/v3/"
Isso gera um CHANGELOG.md , com formatação bonita de marcação.
Veja Changelog.md para este projeto
ActionSheetpicker-3.0/changelog.md foi gerado pelo comando:
$ github_changelog_generator -u github-changelog-generator -p ActionSheetPicker-3.0
Em geral, parece assim:
1.2.5 (2015-01-15)
Changelog completo
Aprimoramentos implementados:
- Use Milestone para especificar em qual versão foi corrigida #22
Corrigidos erros:
- Erro ao tentar gerar log para repo sem tags #32
Solicitações de puxar mescladas:
A classe PrettyPrint está incluída usando o minúsculo 'PP' #43 (Schwing)
Suporte Enterprise Github via Linha de comando Opções #42 (Glenlovett)
Imprima ajuda para todas as opções de linha de comando para aprender mais detalhes:
$ github_changelog_generator --help
Para mais detalhes sobre parâmetros, leia a página do wiki: Exemplos avançados de geração de changelog
Na sua raiz do projeto, você pode colocar um arquivo params chamado .github_changelog_generator para substituir os parâmetros padrão:
Exemplo:
unreleased=false
future-release=5.0.0
since-tag=1.0.0
O GitHub permite apenas 50 solicitações não autenticadas por hora .
Portanto, é recomendável executar esse script com autenticação usando um token .
Aqui está como:
--token <your-40-digit-token> ; OUCHANGELOG_GITHUB_TOKEN para o seu token de 40 dígitos Você pode definir uma variável de ambiente executando o seguinte comando no prompt ou adicionando -o ao seu perfil de shell (por exemplo, .env , ~/.bash_profile , ~/.zshrc , etc):
export CHANGELOG_GITHUB_TOKEN="«your-40-digit-github-token»"
Então, se você receber uma mensagem como esta:
API rate limit exceeded for github_username.
See: https://developer.github.com/v3/#rate-limitingÉ hora de criar esse token! (Ou aguarde uma hora para o GitHub redefinir seu limite de solicitação não autenticado.)
Sabendo como você é dedicado ao seu projeto, você provavelmente não estava esperando github-changelog-generator manter um Changelog. Mas você provavelmente não deseja que o seu projeto seja aberto e PRS para todos os recursos anteriores listados em seu Changelog histórico.
É aí que --base <your-manual-changelog.md> é útil! Esta opção permite anexar seu antigo changelog manual ao final das entradas geradas.
Se você tiver um arquivo HISTORY.md em seu projeto, ele será automaticamente escolhido como o Changelog Histórico estático e anexado.
Você ama rake ? Nós também! Então, tornamos ainda mais fácil para você: fornecemos uma biblioteca de tarefas de rake para sua geração de changelog.
Configure a tarefa em seu Rakefile :
require 'github_changelog_generator/task'
GitHubChangelogGenerator :: RakeTask . new :changelog do | config |
config . user = 'username'
config . project = 'project-name'
config . since_tag = '0.1.14'
config . future_release = '0.2.0'
end Todas as opções de linha de comando podem ser passadas para a tarefa rake como parâmetros config . E como você está nomeando a tarefa rake , pode criar quantos quiser.
Você pode procurar nomes de parâmetros no código -fonte do analisador (#setup_parser). Por exemplo, para traduzir o rótulo de bugs em português, em vez de definir config.bugs_label , você deve definir config.bug_prefix e assim por diante.
Gere um arquivo canônico e puro Changelog, com seções padrão que seguem as diretrizes básicas do Changelog?
Opcionalmente, gerar alterações não lançadas (questões fechadas que ainda não foram divulgadas)?
Suporte do Github Enterprise via Opções da linha de comando! ?
Personalização de formato flexível:
milestone do problema o mesmo nome que a tag da versão?question , duplicate , invalid ou wontfix ) ✂️Distinguir questões por rótulos . ?
bug )?enhancement )?Incluir ou excluir manualmente questões por etiquetas?
Personalize muito mais! Ajustar o Changelog para se adequar às suas preferências? ( Veja github_changelog_generator --help para obter detalhes)
Para cada versão, você pode adicionar um resumo de liberação com texto, imagens, animações de GIF, etc. e mostrar novos recursos e notas claramente ao usuário. Isso é feito usando metadados do github.
Exemplo : Adicionando o resumo de liberação para v1.0.0:

Hello, World! :tada:
release-summary e adicione-o ao GitHub Milestone v1.0.0github-changelog-generatorv1.0.0 (2014-11-07)
Changelog completo
Olá, mundo! ?
Aprimoramentos implementados:
- Adicione alguns recursos
Aqui está uma lista do WikiPage de alternativas que eu encontrei. Mas ninguém atendeu aos meus requisitos.
Se você conhece outros projetos, sinta -se à vontade para editar esta página do Wiki!
Aqui está uma lista do WikiPage de projetos.
Se você usou este projeto em um aplicativo ao vivo, entre em contato! Nada me deixa mais feliz do que ver alguém pegar meu trabalho e enlouquecer com isso.
Se você estiver usando github_changelog_generator para gerar o Changelog do seu projeto ou conhecer outros projetos usando -o, adicione -o a esta lista.
github_changelog_generator pode ser usado em combinação com a CLI do GitHub para criar notas de liberação. Use as opções --since-tag e --output de github_changelog_generator para criar um Changelog para a versão atual e armazenar os resultados em um arquivo. No exemplo abaixo, a versão 2.0.0 é a versão atual e a versão 1.0.0 é a versão anterior.
mkdir -p build
github_changelog_generator
--since-tag 1.0.0
--output build/changelog.md
Em seguida, use o recurso Criar Criar da CLI do GitHub para criar uma nova versão do GitHub
gh release create 2.0.0
--notes-file build/changelog.md
--title 2.0.0
Nada é impossível!
Abra um problema e vamos tornar o gerador melhor juntos!
Relatórios de bugs, solicitações de recursos, patches e pecuários bem-vindos são sempre bem-vindos. ❗
O Github Lankees é uma coisa muito boa. E é muito bom mantê -lo. (Ainda muitas pessoas estão usando!) ㊗️
BTW: Gostaria de apoiar os lançamentos do GitHub nos próximos lançamentos;)
Não estou tentando comparar a qualidade dos logs manuscritos e gerados automaticamente. Isso dito ....
Um changelog gerado automaticamente realmente ajuda, mesmo que você preencha manualmente as notas de liberação!
Isso é possível usando as add-sections ou a entrada configure-sections no .github_changelog_generator . Por exemplo, para adicionar uma nova entrada chamada "Manutenção" que capturará os PRs marcados com seu rótulo maintenance , você pode adicionar ao .github_changelog_generator a linha:
add-sections= {"maintenance":{"prefix":"**Project maintenance**","labels":["maintenance"]}}
Uma abordagem semelhante pode ser usada via configure-sections para definir todas as propriedades da seção (incluindo a adição de novas!).
Quando seu rubi está velho e você não deseja atualizar, e deseja controlar quais bibliotecas usa, você pode usar o Bundler.
Em um gemfile, talvez em um grupo :development adicione esta jóia:
group :development do
gem 'github_changelog_generator' , require : false
endEm seguida, você pode manter dependências de volta como o rack, que atualmente é compatível apenas com rubi> = 2.2.2. Portanto, use uma versão mais antiga para o seu aplicativo adicionando uma linha como essa ao GemFile:
gem 'rack', '~> 1.6'
Dessa forma, você pode continuar usando o github_changelog_generator, mesmo que você não consiga obter a versão mais recente do Ruby instalada.
Windows: v1.14.0 introduziu um bug no qual ele tenta criar /tmp/github_changelog-logger.log ... que não é um caminho válido no Windows e, portanto, falha
Solução alternativa: Crie um C:tmp .
Você gostaria de contribuir para este projeto? Contribuindo.md tem todos os detalhes sobre como fazer isso.
Participe do bate-papo no Gitter: Github-Changelog-Generator
O Github Changelog Generator é liberado sob a licença do MIT.