Xavier Nayrac

Rubyiste accro au TDD, serial blogger, apprenti data scientist, heureux utilisateur de Vim, accordéoniste.
Si vous vous sentez particulièrement généreux, suivez moi sur Twitter.

Générer un fichier Changelog avec Git

| Comments

Niveau : facile

J’ai écrit un script pour Git qui permet de produire un fichier changelog en html ou en markdown à partir des commits.

Dans un article précédent j’ai montré comment étendre Git avec un script pour créer ses propres commandes. Aujourd’hui je vous présente mon script git-changelog. Vous pouvez le trouver sur Github.

Il s’agit d’un script Ruby qui ajoute une commande changelog à Git. Il est utile pour automatiser (ou semi-automatiser) la production du fichier changelog. Il peut produire des fichiers au format HTML ou au format Markdown.

Pour l’installer, il faut mettre le fichier git-changelog quelque part dans votre PATH, après l’avoir téléchargé.

Utilisation

Sortie sur la console:

git changelog

Sortie dans un fichier:

git changelog > changelog.markdown

Le script accepte l’option --since. C’est la même option qu’utilise la commande git log:

git changelog --since=2013-07-01
git changelog --since=10.days

Sortie au format HTML:

git changelog --html

Un exemple de combinaison:

git changelog --html --since=2013-05-27 > changelog.html

Un exemple

Voici ce que produit git-changelog:

2013-07-18 Version 0.2.1  
==========================
* 2013-07-18 Fix bug for markdown format  
  Html entities are now escaped.
* 2013-07-18 Fix bug with markdown format  
  Commit body now start on a new line.
* 2013-07-18 Add auto-generated changelog file  

2013-07-18 Version 0.2.0  
==========================
* 2013-07-18 Add html format output  
  A new --html option outputs a <ul>.
* 2013-07-17 First commit  
  The script outputs in markdown and accept the option '--since'.

Et voilà ce que ça donne (avec le style de ce blog):

2013-07-18 Version 0.2.1

  • 2013-07-18 Fix bug for markdown format
    Html entities are now escaped.
  • 2013-07-18 Fix bug with markdown format
    Commit body now start on a new line.
  • 2013-07-18 Add auto-generated changelog file

2013-07-18 Version 0.2.0

  • 2013-07-18 Add html format output
    A new –html option outputs a <ul>.
  • 2013-07-17 First commit
    The script outputs in markdown and accept the option ‘–since’.

Rake task

Voici un exemple de rake task pour une gem Ruby:

1
2
3
4
desc "Generate the changelog"
task :changelog do
  system "git changelog > Changelog.markdown"
end

Et un exemple pour un projet Rails:

lib/tasks/changelog.rake
1
2
3
4
desc "Generate the changelog in html"
task :changelog do
  system "git changelog --html > app/views/pages/_changelog.html"
end

À demain.

Articles connexes

Commentaires