有没有办法从 Github 问题中自动生成更改日志?
理想情况下,我希望能够指向一个已关闭的里程碑,并生成带有标题的已关闭问题的纯文本列表,或者更好的是,生成带有问题链接标记的列表和问题本身的标题。
您可以尝试使用Github-Changelog-Generator。(我是这个项目的作者)
它从标签和合并的拉取请求生成更改日志。该脚本还支持 GitHub 问题。
此更改日志是由此脚本生成的。变更日志.md
例子:
变更日志
1.2.5 (2015-01-15)
实施的增强功能:
- 使用里程碑指定修复了哪个版本的错误#22
修复的错误:
- 尝试为没有标签的 repo 生成日志时出错#32
合并的拉取请求:
通过命令行选项支持企业 github #42 ( glenlovett )
这不是专门针对 Github 的,但是通过 Git,您可以通过漂亮的打印运行日志以生成更改日志样式的 html 页面。
来自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"
您可以使用GitHub API获取与给定里程碑相关的问题列表。例如:
curl https://api.github.com/repos/<user>/<project>/issues\?milestone\=1\&state\=closed
将<user>
和替换<project>
为用户名和项目,这将返回一个包含 id 的里程碑所有已关闭问题的 json 列表1
。然后,例如,您可以使用脚本来提取您感兴趣的信息。这是一个将问题列表打印为重组文本的 python 示例:
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)
看看以下工具是否会为你做github-changes。
披露:我是该工具的作者。
我们创建了一个开源项目来从给定日期时间以来关闭的 github 问题列表中生成更改日志。它在这里可用:https ://github.com/piwik/github-changelog-generator
不直接通过 GitHub:这将是一种你可以放置的钩子,它基于你的项目可能遵循的命名约定或注释约定。
即使使用问题标题也不总是生成有意义的更改日志的可靠方法,除非您在需要时查看和编辑项目的每个问题标题。
换句话说,它非常依赖于您管理项目的方式,并且不容易推广到所有GitHub 存储库。
我在一个非常相似的问题“在 Github 上发布项目版本(二进制/源包)? ”中说了这么多。
除了第三方解决方案(或类似 GitHub Action generate-changelog
)之外,您可能很快会在 2021 年第三季度拥有来自 GitHub 的原生功能:
软件生命周期中最重要的部分之一就是发布您的代码供他人使用。
GitHub Releases 将通过提供引人注目的自动发布说明,让这一切变得更加容易。
创建 Release 时,您可以单击按钮自动生成 Release Notes。
如果您想要更自定义的内容,您可以使用 REST API 来获取生成的发布说明并将它们集成到您现有的发布流程中。我们还希望确保这些发行说明在维护者共享它们时看起来很棒,并使它们更容易被发现。我们对版本进行了彻底的重新设计,使项目公告看起来令人惊叹。
我们在提要中显示这些版本以增加发现。
我们还在改进发布的开放图形数据,因此当它们在 GitHub 平台上共享时看起来同样出色。
预期结果
我们的首要目标是让维护人员轻松创建出色的发行说明,以便更多人可以发现维护人员正在做的令人惊叹的工作。
用最少的努力,许多项目将能够从详细的发行说明中受益。
对于在发布说明中投入更多时间来编写社论内容的维护人员来说,预期的结果是我们可以腾出他们目前花费在维护自定义基础架构和编译变更日志上的时间,以便他们可以专注于为客户提供最重要的高质量内容编辑的内容。
我们的另一个目标是确保发布说明看起来很棒,并且是维护者和开发人员乐于阅读和分享的内容。
它将如何运作?
- 新的 Releases UI 将能够通过功能预览启用
- 发布创建 UI 中的一个新按钮将能够被按下以从任何标签生成发布说明
- 生成的注释将能够通过
.github/release.yml
- 新的 REST API 将允许客户在自己方便的时候生成注释,以进一步自动化和自定义 GitHub 操作的体验。
我最近为此帮助构建了一个 jQuery 插件,它使用 GitHub 问题将应用程序更新直接传达给用户。可以在这里找到回购https://github.com/uberVU/github-changelog
用法很简单:
$(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');
});
});