Skip to main content

用于处理结构化提交的简洁命令行工具。

项目描述

传统的

常规是用于解析和处理结构化提交的可扩展命令行工具。它支持常规提交标准,但可以扩展以支持任何其他提交格式。

有关此工具支持的功能类型的示例,请参见CHANGELOG.md 。

要求

  • Python 3.8+
  • Git 2.27.0

安装

使用pip安装和更新:

$ pip install -U conventional

用法

列出提交

$ conventional list-commits

该list-commits命令将从存储库中检索 git 提交并以 json 格式输出它们,每行每个提交一个对象,然后可以通过管道传输到例如jq. 默认情况下,该命令将输出从提交中检索到的原始字段,包括提交的主题、正文、作者和日期。

--parse该命令可以通过提供标志来自动解析提交。如果指定了标志,则将以Parsing Commits中描述的格式输出提交。此命令将支持该--include-unparsed标志,如果提供了未能解析的提交,则将输出缺少该data字段。

解析提交

$ conventional [--config .conventional.yaml] parse-commit

该parse-commit命令将从文件或标准输入读取提交,并尝试使用配置的解析器解析它们。此命令将以 json 格式输出提交,每行一个对象,格式为{"source": {}, "data": {}},其中source包含原始提交字段并data包含从提交中解析的字段。

如果无法解析提交,则默认情况下它不会包含在输出中。可以使用该--include-unparsed标志禁用此行为,在这种情况下,无法解析的提交将输出缺少该data字段(因为无法解析任何字段)。

请参阅下面的解析器以获取包含在conventional.

将提交呈现到模板中

$ conventional [--config .conventional.yaml] template

该template命令将读取提交流,通过查看提交上的标签确定不同的“版本”,并使用配置的模板呈现它们。模板使用 Jinja2 呈现,并提供版本列表以及配置文件中指定的任何自定义配置。

请参阅下面的模板以获取conventional.

笔记

在内部,一些命令将使用其他命令来提供附加功能并简化常见用例。

例如...

$ conventional list-commits --parse # is equivalent to
$ conventional list-commits | conventional parse-commit

和...

$ conventional template # is equivalent to
$ conventional list-commits | conventional parse-commit | conventional template --input -

这意味着,例如,如果您希望使用conventional template但仅使用自最后一个标签创建的提交,您可以使用 command conventional list-commits --from-last-tag | conventional template --input -。

配置

--config-file除了命令行参数外,还可以在调用时通过参数提供配置文件conventional。默认情况下conventional,配置为解析符合常规提交标准的提交并将它们呈现到更改日志中,但这可以通过配置配置文件中的parser和template部分以及其他内容来更改。

查看config_default.yaml以查看配置文件中可以包含的内容。

下面是默认提供的解析器和模板列表conventional。

解析器

模块:conventional.parser,名称:ConventionalCommitParser

解析符合常规提交标准的提交。

支持的配置:
  • typestype- 允许在提交消息中用作 a 的值。使用此列表中未指定类型的任何提交都将无法正确解析。

模板

包:常规,名称:changelog.md

以适合存储在 CHANGELOG.md 文件中的格式呈现提交。

支持的配置:
  • commit-link-pattern- 此模式将用于生成提交的链接,{rev}替换为提交的哈希并{short_rev}替换为提交的短哈希。例如,如果您使用的是 Github,这可能是https://github.com/[owner]/[repo]/commit/{rev}.
  • compare-link-pattern- 此模式将用于生成当前版本与先前版本之间比较的链接,{to}替换为当前版本{from}的标签并替换为先前版本的标签。例如,在 Github 中,这可能是https://github.com/[owner]/[repo]/compare/{from}...{to}
  • issue-link-pattern- 此模式将用于生成指向提交中任何问题引用的链接,{issue}并扩展为问题的 ID。例如,如果您使用 Jira,则此格式可能是https://[company].atlassian.net/browse/{issue}.
  • version-link-pattern- 此模式将用于为给定版本生成指向源的链接,{tag}并由给定版本的标签替换。例如,在 Github 中,这可能是https://github.com/[owner]/[repo]/tree/{tag}
  • type-headings- 提交“类型”到应在标题中用于特定类型更改的文本的映射。默认为{"feat": "Feature", "fix": "Fixes"}.

包:常规,名称:slack.md

以适合发布到 Slack 的格式呈现提交。

支持的配置:
  • commit-link-pattern- 此模式将用于生成提交的链接,{rev}替换为提交的哈希并{short_rev}替换为提交的短哈希。例如,如果您使用的是 Github,这可能是https://github.com/[owner]/[repo]/commit/{rev}.
  • compare-link-pattern- 此模式将用于生成当前版本与先前版本之间比较的链接,{to}替换为当前版本{from}的标签并替换为先前版本的标签。例如,在 Github 中,这可能是https://github.com/[owner]/[repo]/compare/{from}...{to}
  • issue-link-pattern- 此模式将用于生成指向提交中任何问题引用的链接,{issue}并扩展为问题的 ID。例如,如果您使用 Jira,则此格式可能是https://[company].atlassian.net/browse/{issue}.
  • version-link-pattern- 此模式将用于为给定版本生成指向源的链接,{tag}并由给定版本的标签替换。例如,在 Github 中,这可能是https://github.com/[owner]/[repo]/tree/{tag}
  • type-headings- 提交“类型”到应在标题中用于特定类型更改的文本的映射。默认为{"feat": "Feature", "fix": "Fixes"}.

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

常规-0.6.0.tar.gz (20.9 kB 查看哈希)

已上传 source

内置分布

常规-0.6.0-py3-none-any.whl (26.4 kB 视图哈希)

已上传 py3