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.
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)
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)
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 •</a> %s</li> ' --reverse | grep "#changelog"
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)
Voir si l'outil peut faire pour vous github-modifications.
Divulgation: je suis l'auteur de l'outil.
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
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?".
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');
});
});