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