使用AI/ML技术从提交消息中生成变更日志条目

thoth-glyph的Python项目详细描述


Glyph使用机器学习和自然语言处理来理解 提交消息。这些知识可用于将提交分类为 如错误修复、功能添加、改进等

  • 使用带Kebechet的Glyph, 可以生成智能更改日志项。在
  • Glyph还可以用作分析来自 本地存储库的使用情况(请参阅下面的存储库)

从Git运行此项目

git clone git@github.com:thoth-station/glyph.git  # or use https
cd glyph
pipenv install --dev
PYTHONPATH=. pipenv run ./thoth-glyph --help

从PyPI安装此项目

此项目在PyPI上可用,要安装它:

^{pr2}$

特点

  • Commit Classification:可以使用 以下命令:

    thoth-glyph classify -m "COMMIT MESSAGE TO BE ANALYZED"
  • 对多个提交进行分类:多个提交可以一起分类 使用classify repo命令。默认情况下,此操作将所有 在存储库中提交。可选地,日期范围(YYYY-MM-DD)可以是 提供:

    thoth-glyph classify-repo --path /path/to/git/repo --start 2020-05-01 --end 2020-05-10
  • 使用标记分类:也可以使用git标记选择提交。这个 下面的命令将在标记v3.7.1和v3.7.2之间选择提交

    thoth-glyph classify-repo-by-tag --path /path/to/git/repo --start_tag v3.7.1 --end_tag v3.7.2

示例用法

$ thoth-glyph classify -m "Fixed server bug that impacted performance"2020-08-12 19:45:47,798 4594 WARNING  thoth.common:346: Logging to a Sentry instance is turned off
2020-08-12 19:45:47,799 4594 INFO     thoth.common:368: Logging to rsyslog endpoint is turned off
2020-08-12 19:45:47,799 4594 INFO     glyph:68: Version: 0.0.0
2020-08-12 19:45:47,800 4594 INFO     glyph:83: Classifying commit
2020-08-12 19:45:47,800 4594 INFO     thoth.glyph.models:33: Model Path : /home/tussharm/.local/lib/python3.6/site-     packages/thoth/glyph/data/model_commits_v2_quant.bin
Label : corrective
$ thoth-glyph classify-repo --path /home/tussharm/fork/glyph/ --start 2020-08-08 --end 2020-08-12
2020-08-12 19:51:26,743 4873 WARNING  thoth.common:346: Logging to a Sentry instance is turned off
2020-08-12 19:51:26,743 4873 INFO     thoth.common:368: Logging to rsyslog endpoint is turned off
2020-08-12 19:51:26,744 4873 INFO     glyph:68: Version: 0.0.0
2020-08-12 19:51:26,744 4873 INFO     glyph:100: Classifying commits in the given date-range
2020-08-12 19:51:26,749 4873 INFO     thoth.glyph.models:44: Model Path : /home/tussharm/.local/lib/python3.6/site-p    packages/thoth/glyph/data/model_commits_v2_quant.bin
2020-08-12 19:51:26,768 4873 INFO     thoth.glyph.models:52: 6 commits classified
                                           message labels_predicted
0                                 readme updated #27       perfective
1  merge pull request #1 from tushar7sharma/commi...    nonfunctional
2  merge remote-tracking branch 'upstream/master'...         features
3  grouping user-defined commit phrases (#28)* co...         features
4  commits can be collected inside user-defined g...         features
5  merge remote-tracking branch 'upstream/master'...         features

与Kebechet集成

Kebechet可以通过从中读取项目配置来使用Glyph。托特·亚姆 文件。Glyph支持的格式化程序和ML classifiers可以在此中指定 配置文件。在

  • 请参阅示例管理器配置here
  • 请参阅使用Glyphhere生成的示例变更日志

模型和数据集

目前Glyph附带了一个使用Facebook的fasttext库训练的模型,该模型覆盖从 多个大型开源项目(参见参考出版物了解更多 细节)。这个库可以很容易地扩展以容纳更多的模型。 欢迎开发人员投稿,提高分类精度。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何运行一个在播放歌曲的同时创建和更改UI的方法?   eclipse错误:无法找到或加载主类Java,因为类文件anme和类名不同?   两个数字相加得到一个值的java算法   java我可以更改字符串吗?   java Hibernate 5.2:以编程方式从其他jar加载映射   java如何访问随机跳转到固定位置的二进制文件   java是解析器实现中文档的功能   Javasocket的两端齐平   java查找将两个非常大的整数之和除以相等块的步骤   java如何在Restlet中调用带超时的异步HTTP客户端   java如何从servlet请求将hashmap传递给jsp。塞塔提布特   java Spring MVC HTTP状态500–内部服务器错误,Servlet。servlet[dispatcher]的init()引发异常   java即使没有alpha通道,如何将PNGFiles加载为ARGB_8888?   java将subscribe的返回类型映射到其他类型   javascript如何在安卓 WebView中启用longpress操作下载图像?   java将字符串作为hashmap值的一部分添加到StringList中   JavaSpringAOP:代表类型声明其他方法或字段   Java将二进制序列转换为字符   java使用ApachePOI获取最后一行值   为什么要在FPS(每秒帧数)跟踪器中添加时间?(爪哇)