Génération de Changelog à partir de problèmes Github?

Existe-t-il un moyen de générer automatiquement un journal des modifications à partir des problèmes Github?

Idéalement, je veux être en mesure de pointer vers un jalon fermé et générer soit une liste de texte brut des problèmes fermés avec leurs titres ou, mieux encore, une liste avec balisage pour les liens vers les problèmes et le titre des problèmes eux-mêmes.

22
demandé sur James McMahon 2013-02-19 19:05:55

7 réponses

Vous pouvez essayer d'utiliser Github-Changelog-Générateur. (Je suis l'auteur de ce projet)

Il génère le journal des modifications à partir des balises et des pull-requests fusionnés. Ce script prend également en charge les problèmes GitHub.

Ce changelog a été généré par ce script. CHANGELOG.md

Exemple:

Changelog

1.2.5 (2015-01-15)

Changelog Complet

Mise en œuvre améliorations:

  • utilisez milestone pour spécifier dans quelle version Le bogue a été corrigé #22

Correction de bugs:

  • erreur lors de la tentative de génération de journal pour repo sans balises #32

Demandes D'extraction fusionnées:

  • La classe PrettyPrint est incluse en utilisant les minuscules 'pp' #43 (schwing)

  • Prise en charge de enterprise github via les options de ligne de commande #42 (glenlovett)

14
répondu skywinder 2015-02-27 13:38:54

Ce n'est pas spécifiquement pour Github, mais grâce à Git, vous pouvez exécuter le journal via pretty print pour générer une page HTML de style changelog.

À Partir de https://coderwall.com/p/5cv5lg

git log v2.1.0...v2.1.1 --pretty=format:'<li> <a href="http://github.com/jerel/<project>/commit/%H">view commit &bull;</a> %s</li> ' --reverse | grep "#changelog"
11
répondu James McMahon 2013-02-28 15:15:49

Vous pouvez utiliser l'API GitHub pour obtenir une liste des problèmes associés à un jalon donné. Par exemple:

curl https://api.github.com/repos/<user>/<project>/issues\?milestone\=1\&state\=closed

Remplacez <user> et <project> par le nom d'utilisateur et le projet et cela renverra une liste json de tous les problèmes fermés du jalon avec l'id 1. Vous pouvez alors, par exemple, utiliser un script pour extraire les informations qui vous intéressent. Voici un exemple python qui imprime la liste des problèmes sous forme de texte restructuré:

import json

with open("issues.json") as of:
    data = json.load(of)

for issue in data:
    t = issue['title']
    n = issue['number']
    url = issue['html_url']
    print "* %s [`Issue %s <%s>`_]" % (t, n, url)
4
répondu thasso 2014-01-17 15:55:57

Voir si l'outil peut faire pour vous github-modifications.

Divulgation: je suis l'auteur de l'outil.

3
répondu Lalit Kapoor 2014-03-01 19:36:15

Nous avons créé un projet open source pour générer changelog à partir de la liste des problèmes GitHub fermés depuis une date-heure donnée. Il est disponible ici: https://github.com/piwik/github-changelog-generator

2
répondu mattab 2014-10-23 01:38:45

Pas directement via GitHub: ce serait une sorte de crochet que vous pourriez mettre en place, et qui serait basé sur la convention de nommage ou la convention de commentaire que votre projet pourrait suivre.
Même l'utilisation du titre des problèmes n'est pas toujours un moyen sûr de générer un journal des modifications significatif, sauf si vous examinez et modifiez si nécessaire chaque titre de problème de votre projet.

En d'autres termes, cela dépend beaucoup de la façon dont vous gérez votre projet et n'est pas facilement généralisé à all GitHub repos.
J'ai dit autant dans une question très similaire "publier une version de projet (paquets binaires/source) sur Github?".

1
répondu VonC 2017-05-23 12:17:51

J'ai aidé à construire un plugin jQuery pour cela récemment qui utilise des problèmes GitHub pour communiquer les mises à jour de l'application directement à l'utilisateur. Le repo peut être trouvé ici https://github.com/uberVU/github-changelog

L'utilisation est assez simple:

$(function() {
  var $demoChangelog = $('.demo-changelog');

  //call the plugin on a dom none
  $demoChangelog.changelog({
    //give it a repo to monitor
    githubRepo: 'uberVU/github-changelog-playground',
  });

  //manually check for new closed issues
  $('.demo-button').on('click', function(e) {
    e.stopPropagation();
    $demoChangelog.changelog('checkForUpdates');
  });
});
0
répondu Valentin 2014-06-24 18:49:56