Un générateur de journal des modifications rapide qui récupère les modifications à partir des PR et des problèmes GitHub, organisés par étiquettes.
Créez un journal des modifications depuis la dernière version de GitHib jusqu'à la balise/commit git HEAD actuelle pour le dépôt git dans le répertoire actuel :
chronique
Créez un journal des modifications avec toutes les modifications depuis la v0.16.0 jusqu'à la balise/commit git HEAD actuelle pour le dépôt git dans le répertoire actuel :
chronique --since-tag v0.16.0
Créer un journal des modifications entre deux balises spécifiques pour un dépôt au chemin donné
chronique --since-tag v0.16.0 --until-tag v0.18.0 ./path/to/git/repo
Créez un journal des modifications et devinez la version finale à partir de l'ensemble des modifications contenues dans le journal des modifications.
chronique -n
Devinez simplement la prochaine version en fonction de l'ensemble des modifications (ne créez pas de journal des modifications)
chronique prochaine version
curl -sSfL https://raw.githubusercontent.com/anchore/chronicle/main/install.sh | sh -s -- -b /usr/local/bin
...ou vous pouvez spécifier une version et un répertoire de destination pour l'installation :
curl -sSfL https://raw.githubusercontent.com/anchore/chronicle/main/install.sh | sh -s -- -b
Chemins de recherche de configuration :
.chronicle.yaml
.chronicle/config.yaml
~/.chronicle.yaml
Options de configuration (les exemples de valeurs sont les valeurs par défaut) :
# le format de sortie du journal des modifications# identique à -o, --output et CHRONICLE_OUTPUT env varoutput : md# supprime toutes les sorties de journalisation# identique à -q ; CHRONICLE_QUIET env varquiet : false# toutes les options de journalisationlog : # utiliser la journalisation structurée # identique à CHRONICLE_LOG_STRUCTURED env var structurée : false # le niveau de journalisation # identique à CHRONICLE_LOG_LEVEL env var level : "warn" # emplacement pour écrire le fichier journal (la valeur par défaut n'est pas avoir un fichier journal) # identique au fichier var d'env CHRONICLE_LOG_FILE : ""# devinez quelle est la prochaine version en fonction de la version actuelle et de l'ensemble des modifications (ne peut pas être utilisé avec --until-tag)# identique à --speculate- prochaine version / -n ; CHRONICLE_SPECULATE_NEXT_VERSION env varspeculate-next-version: false# remplace la balise git de départ pour le journal des modifications (la valeur par défaut est de détecter automatiquement la dernière version)# identique à --since-tag / -s ; CHRONICLE_SINCE_TAG env varsince-tag : ""# remplace la balise git de fin pour le journal des modifications (la valeur par défaut est d'utiliser la balise ou de valider dans git HEAD)# identique à --until-tag / -u ; CHRONICLE_SINCE_TAG env varuntil-tag : ""# si la version actuelle est < v1.0, les modifications importantes modifieront le champ de la version mineure# identique à CHRONICLE_ENFORCE_V0 env varenforce-v0 : false# le titre utilisé pour le journal des modifications# identique à CHRONICLE_TITLEtitle : Changelog# tous les paramètres liés à github github : # l'hôte github à utiliser (remplacement pour les déploiements d'entreprise github) # identique à CHRONICLE_GITHUB_HOST env var host : github.com # ne prend en compte aucun problème ou PR avec l'une des étiquettes données # identique à CHRONICLE_GITHUB_EXCLUDE_LABELS env var Exclure-labels : - dupliquer - question - invalide - ne réparera pas - ne répare pas - libérer-ignorer - journal des modifications-ignorer - ignorer # considère les PR fusionnés comme des entrées candidates du journal des modifications (doit avoir une étiquette correspondante d'une entrée 'github.changes') # identique à CHRONICLE_GITHUB_INCLUDE_PRS env var include-prs: true # considère les problèmes fermés comme des entrées candidates du journal des modifications (doit avoir une étiquette correspondante d'un entrée 'github.changes') # identique à CHRONICLE_GITHUB_INCLUDE_ISSUES env var include-issues : true # les problèmes ne peuvent être pris en compte pour les candidats au journal des modifications que s'ils ont des PR liés qui sont fusionnés (remarque : ne nécessite PAS que github.include-issues soit défini) # identique à CHRONICLE_GITHUB_ISSUES_REQUIRE_LINKED_PRS env var issues-require-linked-prs : false # liste de définitions des étiquettes appliquées aux problèmes ou aux PR qui constituent une entrée du journal des modifications. Ces entrées dictent également # la section du journal des modifications, le titre du journal des modifications et le champ semver qui représente le mieux la classe de changement. # remarque : ne peut pas être défini via les modifications des variables d'environnement : [......] # Voir la section "Définitions des modifications par défaut de GitHub" pour plus de détails
Le configurable github.changes
est une liste de mappages, chacun prenant les champs suivants :
name
: [chaîne] nom au singulier, en minuscules, séparé par des traits d'union (sans espaces) qui représente le mieux le changement (par exemple "changement de rupture", "sécurité", "fonctionnalité ajoutée", "amélioration", "nouvelle fonctionnalité", etc).
title
: [string] titre de la section du journal des modifications répertoriant toutes les entrées.
semver-field
: [string] les entrées de modification modifieront le champ semver respectif lors de la détermination de la prochaine version. Valeurs autorisées : major
, minor
ou patch
.
labels
: [liste de chaînes] toutes les étiquettes de problème ou de relations publiques qui doivent correspondre à cette section de modification.
La valeur par défaut de github.changes
est :
- nom : correctifs de sécurité titre : correctifs de sécurité champ semver : étiquettes des correctifs : - sécurité - vulnérabilité - nom : titre de la fonctionnalité ajoutée : Fonctionnalités ajoutées champ semver : étiquettes mineures : - amélioration - fonctionnalité - mineure - nom : titre du correctif de bug : Corrections de bugs champ semver : étiquettes du correctif : - bogue - réparer - correction de bug - correctif - nom : titre de la fonctionnalité de rupture : Breaking Changes semver-field : labels majeurs : - casser - rétrocompatible - changement radical - fonction de rupture - majeur - nom : titre de la fonctionnalité supprimée : fonctionnalités supprimées champ semver : étiquettes principales : - supprimé - nom : titre de la fonctionnalité obsolète : Fonctionnalités obsolètes champ semver : étiquettes mineures : - obsolète - nom : titre inconnu : modifications supplémentaires