Um gerador rápido de changelog que origina alterações de PRs e problemas do GitHub, organizados por rótulos.
Crie um changelog desde a última versão do GitHib até a tag/commit git HEAD atual para o repositório git no diretório atual:
crônica
Crie um changelog com todas as alterações da v0.16.0 até a tag/commit git HEAD atual para o repositório git no diretório atual:
crônica --since-tag v0.16.0
Crie um changelog entre duas tags específicas para um repositório no caminho fornecido
crônica --since-tag v0.16.0 --until-tag v0.18.0 ./path/to/git/repo
Crie um changelog e adivinhe a versão de lançamento a partir do conjunto de alterações no changelog
crônica -n
Apenas adivinhe a próxima versão de lançamento com base no conjunto de alterações (não crie um changelog)
crônica próxima versão
curl -sSfL https://raw.githubusercontent.com/anchore/chronicle/main/install.sh | sh -s -- -b /usr/local/bin
...ou você pode especificar uma versão de lançamento e um diretório de destino para a instalação:
curl -sSfL https://raw.githubusercontent.com/anchore/chronicle/main/install.sh | sh -s -- -b <DESTINATION_DIR> <RELEASE_VERSION>
Caminhos de pesquisa de configuração:
.chronicle.yaml
.chronicle/config.yaml
~/.chronicle.yaml
<XDG_CONFIG_HOME>/chronicle/config.yaml
Opções de configuração (valores de exemplo são o padrão):
# o formato de saída do changelog# igual a -o, --output e CHRONICLE_OUTPUT env varoutput: md# suprime todas as saídas de registro# igual a -q ; CHRONICLE_QUIET env varquiet: false# all logging optionslog: # usa log estruturado # igual a CHRONICLE_LOG_STRUCTURED env var estruturado: false # o nível de log # igual a CHRONICLE_LOG_LEVEL env var level: "warn" # local para gravar o arquivo de log (o padrão é não tem um arquivo de log) # igual ao arquivo CHRONICLE_LOG_FILE env var: ""# adivinhe qual será a próxima versão de lançamento é baseado na versão atual e no conjunto de alterações (não pode ser usado com --until-tag)# igual a --speculate-next-version / -n ; CHRONICLE_SPECULATE_NEXT_VERSION env varspeculate-next-version: false# substitui a tag git inicial do changelog (o padrão é detectar a última versão automaticamente)# igual a --since-tag / -s ; CHRONICLE_SINCE_TAG env varsince-tag: ""# substitui a tag git final para o changelog (o padrão é usar a tag ou confirmar em git HEAD)# igual a --until-tag / -u ; CHRONICLE_SINCE_TAG env varuntil-tag: ""# se a versão de lançamento atual for <v1.0, então as alterações significativas irão ultrapassar o campo da versão secundária# igual a CHRONICLE_ENFORCE_V0 env varenforce-v0: false# o título usado para o changelog# igual a CHRONICLE_TITLEtitle: Changelog# todas as configurações relacionadas ao githubgithub: # o host do github a ser usado (substituir para implantações corporativas do github) # igual a CHRONICLE_GITHUB_HOST env var host: github.com # não considere quaisquer problemas ou PRs com qualquer um dos rótulos fornecidos # igual a CHRONICLE_GITHUB_EXCLUDE_LABELS env var exclude-labels: - duplicado - pergunta - inválido - não vai consertar - não vai consertar - liberar-ignorar - changelog-ignorar - ignorar # considere PRs mesclados como entradas candidatas no changelog (deve ter um rótulo correspondente de uma entrada 'github.changes') # igual a CHRONICLE_GITHUB_INCLUDE_PRS env var include-prs: true # considere problemas fechados como entradas candidatas no changelog (deve ter um rótulo correspondente de um entrada 'github.changes') # igual a CHRONICLE_GITHUB_INCLUDE_ISSUES env var include-issues: true # problemas só podem ser considerado para candidatos de changelog se eles tiverem PRs vinculados que foram mesclados (nota: NÃO requer que github.include-issues seja definido) # igual a CHRONICLE_GITHUB_ISSUES_REQUIRE_LINKED_PRS env var Issues-require-linked-prs: false # lista de definições de quais rótulos aplicados a problemas ou PRs constituem uma entrada no changelog. Essas entradas também determinam # a seção do changelog, o título do changelog e o campo semver que melhor representa a classe de mudança. # nota: não pode ser definido por meio de alterações nas variáveis de ambiente: [...<lista de entradas>...] # Consulte a seção "Definições de alteração padrão do GitHub" para obter mais detalhes
O configurável github.changes
é uma lista de mapeamentos, cada um com os seguintes campos:
name
: [string] singular, minúsculo, separado por hífen (sem espaços) nome que melhor representa a mudança (por exemplo, "alteração significativa", "segurança", "recurso adicionado", "aprimoramento", "novo recurso", etc).
title
: [string] título da seção no changelog listando todas as entradas.
semver-field
: [string] as entradas de alteração irão ultrapassar o respectivo campo semver ao adivinhar a próxima versão de lançamento. Valores permitidos: major
, minor
ou patch
.
labels
: [lista de strings] todos os rótulos de problemas ou PR que devem corresponder a esta seção de alteração.
O valor padrão para github.changes
é:
- nome: correções de segurança título: Correções de segurança semver-field: rótulos de patch: - segurança - vulnerabilidade - nome: recurso adicionado título: Recursos adicionados semver-field: rótulos secundários: - aprimoramento - recurso - menor - nome: correção de bug título: Correções de bugs semver-field: rótulos de patch: - erro - consertar - correção de bug - correção - nome: título do recurso de última hora: Mudanças de última hora semver-field: grandes gravadoras: - quebrando - incompatível com versões anteriores - mudança significativa - recurso de quebra - principal - nome: recurso removido título: Recursos removidos semver-field: rótulos principais: - removido - nome: recurso obsoleto título: Recursos obsoletos semver-field: rótulos secundários: - obsoleto - nome: título desconhecido: alterações adicionais