Uma ação do GitHub para gerar Changelog automaticamente de acordo com os compromissos convencionais.
Sinta -se à vontade para enviar uma solicitação de tração ou um problema, mas siga os modelos.
Bem -vindo colaboradores para melhorar este projeto juntos!
Se você gosta disso, por favor me dê uma estrela !
Crie um arquivo de fluxo de trabalho como .github/workflows/changelog.yml (você pode encontrá -lo neste repositório)
name : Generate changelog
on :
release :
types : [created, edited]
jobs :
generate-changelog :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
with :
fetch-depth : 0
- uses : BobAnkh/[email protected]
with :
REPO_NAME : ' <YourUserName>/<YourRepoName> '
ACCESS_TOKEN : ${{secrets.GITHUB_TOKEN}}
PATH : ' CHANGELOG.md '
COMMIT_MESSAGE : ' docs(CHANGELOG): update release notes '
TYPE : ' feat:Feature,fix:Bug Fixes,docs:Documentation,refactor:Refactor,perf:Performance Improvements 'NOTA: A geração do Changelog precisa de todo o histórico de compromissos, então você deve definir
fetch-depth: 0comactions/checkoutNOTA: O log de comprometimento começa com
docs(changelog)oudoc(CHANGELOG)não será adicionado ao Changelog
Consulte as notas abaixo da tabela para definir alguns dos parâmetros .
| Entradas | Descrição | Obrigatório | Padrão |
|---|---|---|---|
| Repo_name | Nome do repositório | não | '' que significa repositório atual |
| Access_token | Token de acesso ao github. Veja as notas 1 | sim | Você pode simplesmente passar ${{secrets.GITHUB_TOKEN}} |
| CAMINHO | Caminho para o seu arquivo | não | CHANGELOG.md |
| FILIAL | A filial para atualizar o arquivo especificado no caminho | não | '' que significa ramo padrão |
| Pull_request | Abra uma nova solicitação de tração se definida como um nome de ramificação de destino. Veja as notas 2 | não | '' , o que significa não abrir solicitação de puxar por padrão |
| Commit_message | Cometer mensagem | não | docs(CHANGELOG): update release notes |
| TIPO | O tipo de compromisso que você deseja adicionar ao Changelog. Veja as notas 3 | não | 'feat:Feature,fix:Fix' |
| Comissário | O componente que você deseja usar para atualizar o arquivo. Veja as notas 4 | não | '' que significa comissário padrão |
| Default_scope | O escopo padrão para manter todas as confirmações não escondidas | não | general |
| Supressão_unscoped | Se deve excluir compromissos não escapados | não | falso |
| Não lançado_Commits | Se deve incluir compromissos não lançados no Changelog | não | falso |
| Regeneate_count | Regenerar n Lançamentos recentes de Changelog. Veja as notas 5 | não | 0 |
| Replypty_release_info | Substitua as informações de liberação vazia por algumas palavras | não | falso |
Notas 1 : ${{secrets.GITHUB_TOKEN}} possui um limite de taxa menor que o token de acesso pessoal (PAT); portanto, se você tiver muito mais solicitações (cometidos, prs etc.) ou enfrentar um erro de 403 limite de taxa limite, use Pat.
Notas 2 : PULL_REQUEST deve ser usado juntas com BRANCH , ambos devem receber um nome de ramificação válido se você deseja abrir uma solicitação de tração . O GA abrirá uma solicitação de tração da BRANCH (ramificação da cabeça) para o PULL_REQUEST (ramificação base). Deixe PULL_REQUEST em branco se não quiser abrir uma solicitação de tração.
Notas 3 : Você pode definir a palavra -chave detectada da mensagem de confirmação e a palavra correspondente apresentada no Changelog no TYPE de entrada. Por exemplo, defina feat:Feature,fix:Bug Fixes terão mensagens como feat(main): add new option a ser apresentada no Changelog em Parte Feature e tenha mensagens cometer como fix(server): adjust rendering a ser apresentada no Changelog em Part Bug Fixes .
Notas 4 : COMMITTER deve estar no formato: 'author <author@email>'
Notas 5 : Todos os lançamentos não existem no Changelog serão obviamente adicionados ao Changelog. Use este parâmetro para regenerar os últimos n libera do Changelog. Definir padrão como 0 significa gerar apenas para novos lançamentos. Você pode definir como -1 para regenerar todos os lançamentos.
Notas 6 : Você pode usar o formato abaixo para evitar algumas linhas na descrição do lançamento para aparecer no Changelog:
<!-- HIDE IN CHANGELOG BEGIN --> See CHANGELOG for more details. This line will be hided when changelog is generated. <!-- HIDE IN CHANGELOG END -->
@Bobankh
Você deve seguir nosso código de conduta.
Consulte Diretrizes contribuintes para convenções contribuintes.
Certifique -se de passar em todos os testes antes de enviar seu código. Você pode realizar pytest -ra no diretório raiz para executar todos os testes.
Você pode usar o modo local ao desenvolvê-lo em sua máquina local, aqui está as informações de ajuda da linha de comando:
usage: main.py [-h] [-m MODE] [-f FILE] [-o OUTPUT] [-t TOKEN]
optional arguments:
-h, --help show this help message and exit
-m MODE, --mode MODE choose to use local-dev mode or on github action mode.
Valid values are 'local' or 'github'
-f FILE, --file FILE configuration file to read from when running local-dev
mode
-o OUTPUT, --output OUTPUT
output file when running local-dev mode
-t TOKEN, --token TOKEN
Github Access TokenYixin Shen | Jonathan Mang | Sebastian Rühl |
Apache-2.0 © Bobankh