从Github生成变更日志问题?
有没有办法从Github问题自动生成更改日志从Github生成变更日志问题?,github,changelog,Github,Changelog,有没有办法从Github问题自动生成更改日志 理想情况下,我希望能够指向一个已关闭的里程碑,并生成一个包含已关闭问题及其标题的纯文本列表,或者更好的是,生成一个包含问题链接标记的列表,以及问题本身的标题。不直接通过GitHub:这将是一种可以设置的挂钩,这将基于您的项目可能遵循的命名约定或注释约定。 即使使用问题标题也不一定能生成有意义的更改日志,除非您根据需要查看和编辑项目的每个问题标题 换句话说,它非常依赖于您如何管理您的项目,并且不容易推广到所有GitHub回购协议。 我在一个非常类似的问
理想情况下,我希望能够指向一个已关闭的里程碑,并生成一个包含已关闭问题及其标题的纯文本列表,或者更好的是,生成一个包含问题链接标记的列表,以及问题本身的标题。不直接通过GitHub:这将是一种可以设置的挂钩,这将基于您的项目可能遵循的命名约定或注释约定。
即使使用问题标题也不一定能生成有意义的更改日志,除非您根据需要查看和编辑项目的每个问题标题 换句话说,它非常依赖于您如何管理您的项目,并且不容易推广到所有GitHub回购协议。
我在一个非常类似的问题中也提到了这一点。这不是专门针对Github的,但是通过Git,您可以通过漂亮的打印来运行日志,以生成一个changelog样式的html页面 从
git log v2.1.0…v2.1.1--pretty=format:“%s ”--反向| grep“#changelog”
您可以使用获取与给定里程碑相关的问题列表。
例如:
curl https://api.github.com/repos/<user>/<project>/issues\?milestone\=1\&state\=closed
看看下面的工具是否适合您
披露:我是该工具的作者。我最近帮助构建了一个jQuery插件,该插件使用GitHub问题直接向用户传达应用程序更新。回购协议可以在这里找到 用法非常简单:
$(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');
});
});
我们创建了一个开源项目,从给定日期时间以来关闭的github问题列表中生成changelog。可在此处找到:您可以尝试使用。(我是这个项目的作者) 它从标记和合并的请求生成changelog。 此脚本还支持GitHub问题 此更改日志由此脚本生成 例如: 变更日志 (2015-01-15) 已实施的增强功能:
- 使用里程碑指定修复错误的版本
- 尝试为不带标记的回购生成日志时出错
- PrettyPrint类包含在使用小写字母“pp”()
- 通过命令行选项()支持企业github
有趣的选择,比我的答案更实用+1@james-mcmahon这不是一个很好的解决方案,尤其是对于GitHub,它有一个自己的问题追踪器,可以让您生成更好的变更日志。根据这篇文章,把提交放在changelog上是一个很糟糕的例子:所以,检查下面我的答案,这正好解决了你问它的主题。有趣的方法,比我的答案更详细+最后!非常感谢@idefine,这正是我一段时间以来想要的——通过解析适当格式的版本历史记录生成的发行说明。是否有匹配的Git预提交脚本来确保格式得到支持?创建起来很容易,但我喜欢重用控制盘:)。此外,我想知道“问题”是否也会拉出“拉请求”,在Github中,这些请求看起来也像票证一样。@AnneTheAgile是的,它会拉出拉请求。我还没有创建预提交脚本,但是您可以看到我在这里使用的release.sh:您可以尝试
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)
$(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');
});
});