
Génération de changelog entièrement automatisée - Ce joyau génère un fichier Changelog basé sur des balises , des problèmes et des demandes de traction fusionnées (et les divise en listes distinctes en fonction des étiquettes) de GitHub.
Puisque vous n'avez pas à remplir votre CHANGELOG.md manuellement maintenant: exécutez simplement le script, détendez-vous et prenez une tasse de ☕ avant votre prochaine version! ?
Pour faciliter les utilisateurs et les contributeurs de voir précisément quels modifications notables ont été apportées entre chaque version (ou version) du projet.
Parce que les outils logiciels sont pour les gens . "Les changelogs permettent aux utilisateurs et aux contributeurs de voir précisément les modifications notables entre chaque version (ou version) du projet."
➡️ https://keepachangelog.com
GitHub Changelog Generator est un programme Ruby, distribué en RubyGem. La page d'accueil de Ruby Language a une page d'installation.
Installez le gemme comme:
$ gem install github_changelog_generator
Selon votre système, vous devrez peut-être exécuter le shell en tant qu'administrateur (Windows), ou utiliser sudo gem install github_changelog_generator (Linux).
github_changelog_generator -u github_project_namespace -p github_project
(Lorsque l'espace de noms du projet est probablement votre nom d'utilisateur s'il s'agit d'un projet que vous possédez, mais il pourrait également s'agir de l'espace de noms du projet)
L'utilisation de Docker est une alternative à l'installation de Ruby et du GEM.
Exemple d'invocation:
$ docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator
Pour les référentiels GitHub Enterprise, spécifiez les options --github-site et --github-api :
$ github_changelog_generator --github-site="https://github.yoursite.com"
--github-api="https://github.yoursite.com/api/v3/"
Cela génère un CHANGELOG.md , avec une jolie mise en forme de marque.
Regardez Changelog.md pour ce projet
ActionSheetPicker-3.0 / ChangeLog.md a été généré par commande:
$ github_changelog_generator -u github-changelog-generator -p ActionSheetPicker-3.0
En général, cela ressemble à ceci:
1.2.5 (2015-01-15)
Changelog complet
Améliorations implémentées:
- Utilisez un jalon pour spécifier dans quelle version du bug a été corrigée # 22
Corriger les bugs:
- Erreur lorsque vous essayez de générer du journal pour repo sans balises # 32
Demandes de traction fusionnées:
La classe PrettyPrint est incluse en utilisant le «PP» # 43 en minuscules (Schwing)
Prise en charge de l'entreprise GitHub via des options de ligne de commande # 42 (Glenlovett)
Imprimez l'aide pour toutes les options de ligne de commande pour en savoir plus sur les détails:
$ github_changelog_generator --help
Pour plus de détails sur les paramètres, lisez la page Wiki: Advanced Changelog Generation Exemples
Dans la racine de votre projet, vous pouvez mettre un fichier params nommé .github_changelog_generator pour remplacer les paramètres par défaut:
Exemple:
unreleased=false
future-release=5.0.0
since-tag=1.0.0
GitHub n'autorise que 50 demandes non authentifiées par heure .
Par conséquent, il est recommandé d'exécuter ce script avec l'authentification en utilisant un jeton .
Voici comment:
--token <your-40-digit-token> ; OUCHANGELOG_GITHUB_TOKEN sur votre jeton à 40 chiffres Vous pouvez définir une variable d'environnement en exécutant la commande suivante à l'invite, ou en l'ajoutant à votre profil de shell (par exemple, .env , ~/.bash_profile , ~/.zshrc , etc.):
export CHANGELOG_GITHUB_TOKEN="«your-40-digit-github-token»"
Donc, si vous recevez un message comme ceci:
API rate limit exceeded for github_username.
See: https://developer.github.com/v3/#rate-limitingIl est temps de créer ce jeton! (Ou, attendez une heure pour que Github réinitialise votre limite de demande non authentifiée.)
Sachant à quel point vous êtes dédié à votre projet, vous n'attendiez probablement pas github-changelog-generator pour garder un modiage. Mais vous ne voulez probablement pas non plus les problèmes ouverts de votre projet et les PR pour toutes les fonctionnalités passées énumérées dans votre Changelog historique.
C'est là que --base <your-manual-changelog.md> est utile! Cette option permet d'ajouter votre ancien modification manuelle à la fin des entrées générées.
Si vous avez un fichier HISTORY.md dans votre projet, il sera automatiquement choisi en tant que changelog historique statique et annexé.
Tu aimes rake ? Nous le faisons aussi! Donc, nous avons rendu la tâche encore plus facile: nous avons fourni une bibliothèque de tâches rake pour votre génération de modifications.
Configurez la tâche dans votre 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 Toutes les options de ligne de commande peuvent être transmises à la tâche rake en tant que paramètres config . Et puisque vous nommez vous-même la tâche rake , vous pouvez en créer autant que vous le souhaitez.
Vous pouvez rechercher des noms de paramètres à partir du code source de l'analyseur (#SetUp_Parser). Par exemple, pour traduire l'étiquette des bogues en portugais, au lieu de définir config.bugs_label , vous devez définir config.bug_prefix , etc.
Générer un fichier changelog canonique et soigné, avec des sections par défaut qui suivent les directives de base de Changelog?
Générer éventuellement des modifications inédites (problèmes fermés qui n'ont pas encore publié)?
GHITHUB ENTERPRISE Prise en charge via des options de ligne de commande! ?
Personnalisation du format flexible:
milestone le même nom du problème que la balise de la version?question , duplicate , invalid ou wontfix ) ✂️Distinguer les problèmes par les étiquettes . ?
bug )?enhancement )?Inclure ou exclure manuellement les problèmes par les étiquettes?
Personnalisez beaucoup plus! Take le Changelog pour s'adapter à vos préférences? ( Voir github_changelog_generator --help pour plus de détails)
Pour chaque version, vous pouvez ajouter un résumé de version avec du texte, des images, des animations GIF, etc., et afficher clairement de nouvelles fonctionnalités et notes à l'utilisateur. Cela se fait à l'aide de métadonnées GitHub.
Exemple : ajout du résumé de la version pour v1.0.0:

Hello, World! :tada:
release-summary et ajoutez-le au GitHub Milestone v1.0.0github-changelog-generatorv1.0.0 (2014-11-07)
Changelog complet
Bonjour le monde! ?
Améliorations implémentées:
- Ajouter quelques fonctionnalités
Voici une liste de wikipage des alternatives que j'ai trouvées. Mais aucun ne satisfait mes exigences.
Si vous connaissez d'autres projets, n'hésitez pas à modifier cette page wiki!
Voici une liste de projets WikiPage.
Si vous avez utilisé ce projet dans une application en direct, faites-le moi savoir! Rien ne me rend plus heureux que de voir quelqu'un d'autre prendre mon travail et se déchaîner avec.
Si vous utilisez github_changelog_generator pour générer le modificateur de votre projet, ou connaître d'autres projets à l'aide, veuillez l'ajouter à cette liste.
github_changelog_generator peut être utilisé en combinaison avec le GitHub CLI pour créer des notes de libération. Utilisez les options --since-tag et --output de github_changelog_generator pour créer un changelog pour la version actuelle et stocker les résultats dans un fichier. Dans l'exemple ci-dessous, la version 2.0.0 est la version actuelle et la version 1.0.0 est la version précédente.
mkdir -p build
github_changelog_generator
--since-tag 1.0.0
--output build/changelog.md
Ensuite, utilisez la fonction de création de la version de la CLI GitHub pour créer une nouvelle version GitHub
gh release create 2.0.0
--notes-file build/changelog.md
--title 2.0.0
Rien n'est impossible!
Ouvrez un problème et rendons le générateur meilleur ensemble!
Les rapports de bogues, les demandes de fonctionnalités, les correctifs et les biens sont toujours les bienvenus. ❗
GitHub Sormes est une très bonne chose. Et c'est une très bonne pratique de le maintenir. (Peu de gens l'utilisent encore!) ㊗️
BTW: Je voudrais prendre en charge les versions GitHub dans les versions suivantes;)
Je n'essaie pas de comparer la qualité des journaux manuscrits et générés automatiquement. Cela dit ...
Un changelog généré automatiquement aide vraiment, même si vous remplissez manuellement les notes de sortie!
Ceci est possible en utilisant les add-sections ou la saisie configure-sections dans .github_changelog_generator . Par exemple, pour ajouter une seule nouvelle entrée appelée "maintenance" qui attrapera PRS marqué avec votre étiquette maintenance , vous pouvez ajouter à .github_changelog_generator la ligne:
add-sections= {"maintenance":{"prefix":"**Project maintenance**","labels":["maintenance"]}}
Une approche similaire peut être utilisée via configure-sections pour définir toutes les propriétés de la section (y compris en ajoutant de nouvelles!).
Lorsque votre rubis est vieux et que vous ne voulez pas mettre à niveau et que vous souhaitez contrôler les bibliothèques que vous utilisez, vous pouvez utiliser Bundler.
Dans un Gemfile, peut-être dans un groupe :development ajoutez ce joyau:
group :development do
gem 'github_changelog_generator' , require : false
endEnsuite, vous pouvez garder les dépendances en dos comme le rack, qui est actuellement compatible avec Ruby> = 2.2.2. Alors, utilisez une version plus ancienne pour votre application en ajoutant une ligne comme celle-ci au Gemfile:
gem 'rack', '~> 1.6'
De cette façon, vous pouvez continuer à utiliser github_changelog_generator, même si vous ne pouvez pas installer la dernière version de Ruby.
Windows: v1.14.0 a introduit un bogue où il tente de créer /tmp/github_changelog-logger.log ... qui n'est pas un chemin valide sur Windows et échoue ainsi
Solution: créez un C:tmp .
Souhaitez-vous contribuer à ce projet? Contribution.md a tous les détails sur la façon de le faire.
Rejoignez le chat chez Gitter: Github-Changelog-Generator
Le générateur GitHub Changelog est libéré sous la licence MIT.