Une action GitHub pour générer automatiquement Changelog en fonction des validations conventionnelles.
N'hésitez pas à soumettre une demande de traction ou un problème, mais assurez-vous de suivre les modèles.
Bienvenue aux contributeurs pour améliorer ce projet ensemble!
Si vous aimez ça, donnez-moi une étoile !
Créez un fichier de workflow tel que .github/workflows/changelog.yml (vous pouvez le trouver dans ce référentiel)
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 'Remarque: la génération de Changelog a besoin de tout l'historique des engagements, vous devez donc définir
fetch-depth: 0avecactions/checkoutRemarque: le journal de validation commence par
docs(changelog)oudoc(CHANGELOG)ne sera pas ajouté au changelog
Veuillez consulter les notes sous le tableau pour définir certains des paramètres .
| Entrées | Description | Requis | Défaut |
|---|---|---|---|
| Nom_ | Nom de référentiel | Non | '' Ce qui signifie le référentiel actuel |
| Access_token | Token d'accès GitHub. Voir notes 1 | Oui | Vous pouvez simplement passer ${{secrets.GITHUB_TOKEN}} |
| CHEMIN | Chemin vers le fichier de votre fichier | Non | CHANGELOG.md |
| BIFURQUER | La branche pour mettre à jour le fichier spécifié dans le chemin | Non | '' Ce qui signifie la branche par défaut |
| Pull_request | Ouvrez une nouvelle demande de traction si elle est définie sur un nom de branche cible. Voir notes 2 | Non | '' Ce qui signifie ne pas ouvrir la demande de traction par défaut |
| Commit_message | Commettre un message | Non | docs(CHANGELOG): update release notes |
| TAPER | Le type de validations que vous souhaitez ajouter à Changelog. Voir notes 3 | Non | 'feat:Feature,fix:Fix' |
| Engin | Le commissaire que vous souhaitez utiliser pour mettre à jour le fichier. Voir notes 4 | Non | '' Ce qui signifie un engagement par défaut |
| Default_scope | La portée par défaut pour maintenir tous les commits noncopés | Non | general |
| Suppress_unscoped | S'il faut exclure les commits non copés | Non | FAUX |
| Sans rapport | CONCIFIER COMMENT INCLURER COMMITS INDÉS | Non | FAUX |
| Regenerate_count | Régénérer les versions récentes du changelog. Voir notes 5 | Non | 0 |
| Remplace_empty_release_info | Remplacez les informations de version vide par quelques mots | Non | FAUX |
Remarques 1 : ${{secrets.GITHUB_TOKEN}} a une limite de taux plus petite que le jeton d'accès personnel (PAT), donc si vous avez beaucoup plus de demandes (commits, PRS, etc.) ou faites face à une erreurs à débit 403, utilisez PAT à la place.
Remarques 2 : PULL_REQUEST doit être utilisé avec BRANCH ensemble, les deux doivent être fournis avec un nom de branche valide si vous souhaitez ouvrir une demande de traction . Le GA ouvrira une demande de traction de la BRANCH (branche de tête) à la PULL_REQUEST (branche de base). Laissez PULL_REQUEST Blank si vous ne souhaitez pas ouvrir une demande de traction.
Remarques 3 : Vous pouvez définir le mot-clé détecté à partir du message de validation et le mot correspondant présenté dans le changelog dans TYPE d'entrée. Par exemple, définissez feat:Feature,fix:Bug Fixes auront des messages de validation comme feat(main): add new option à présenter dans Changelog sous Feature de partie et disposer de messages comme fix(server): adjust rendering à présenter dans Changelog sous Bug Fixes partielles.
Remarques 4 : COMMITTER doit être dans le format: 'author <author@email>'
Remarques 5 : Toutes les versions n'existent pas dans le Changelog seront bien sûr ajoutées au changelog. Utilisez ce paramètre pour régénérer les N Changelog des Nat Last N. Par défaut défini sur 0 signifie générer uniquement pour les nouvelles versions. Vous pouvez définir -1 pour régénérer toutes les versions.
Remarques 6 : Vous pouvez utiliser le format ci-dessous pour éviter certaines lignes dans la description de la version pour apparaître dans le Changelog:
<!-- HIDE IN CHANGELOG BEGIN --> See CHANGELOG for more details. This line will be hided when changelog is generated. <!-- HIDE IN CHANGELOG END -->
@Bobankh
Vous devez suivre notre code de conduite.
Voir les directives contributives pour les conventions contributives.
Assurez-vous de passer tous les tests avant de soumettre votre code. Vous pouvez effectuer pytest -ra au répertoire racine pour exécuter tous les tests.
Vous pouvez utiliser le mode local lors de la mesure sur votre machine locale, voici les informations d'aide en ligne de commande:
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