使用Skonsole自动生成Git提交信息

随着LLM应用的普及,日常工作中的很多使用都可以使用LLM来完成,比如Git提交信息的生成。

Skonsole是一个基于Semantic Kernel的命令行小工具,集成了Git提交信息生成、PR内容生成、PR评审等功能。

其作者Lee Miller也是Semantic Kernel的主要开发者。

准备

  1. 首先确保本机安装了 .NET 7 SDK 或者更高版本。
  2. 该工具使用 Azure OpenAI 服务,确保已经有 Azure OpenAI 的 Endpoint 和 Key。

安装

可以使用dotnet tool 进行安装:

dotnet tool install -g skonsole

安装完成之后,可以使用如下指令进行验证是否安装成功:

skonsole --version

配置

安装完成之后,可以通过以下指令进行配置:

skonsole config

目前的配置项包括:

  1. AZURE_OPENAI_CHAT_DEPLOYMENT_NAME
  2. AZURE_OPENAI_API_ENDPOINT
  3. AZURE_OPENAI_API_KEY

可以根据配置指令提示进行配置,也可以直接设置为系统的环境变量。

其中AZURE_OPENAI_CHAT_DEPLOYMENT_NAME为 Chat模型的部署名称,例如gpt-35-turbo、gpt-4 等。

使用

完成配置之后,就可以开始使用了。

需要注意的是,git相关的功能都是基于当前的 git 仓库的,所以可以先将命令行的目录切换到对应的 git 仓库下,然后执行。

生成git提交信息

在生成git提交信息之前,需要先将当前的修改暂存到暂存区

然后使用以下指令可根据当暂存区的内容生成提交信息:

skonsole commit

生成PR(MR)内容

生成PR的内容主要针对当前分支与目标分支的差异,所以可以在当前分支完成代码提交之后,执行以下指令:

skonsole pr -t origin/master

如果默认的上游分支是 origin/main(GitHub 默认分支) 的话, --target/-t 选项就可以省略。

也可以使用以下子指令,效果一样。

skonsole pr description

生成PR(MR)评审内容

和生成PR内容类似,只是变成了生成PR评审内容,可以使用以下指令:

skonsole pr feedback -t origin/master

其他功能

  • skonsole chat: 提示词机器人,可以通过与AI聊天的方式来生成提示词。

构建

该项目在GitHub上开源: Skonsole

如果想要自己修改构建的话,可以执行以下步骤:

  1. 克隆项目到本地
  2. 打开 apps/SKonsole 目录
  3. 添加新的指令和功能
  4. 执行 dotnet build 进行构建

这个项目是一个 dotnet tool, 如果自行修改后想要安装到本地的话,可以参考这个使用 .NET 本地工具

参考

  1. Skonsole
  2. SKonsole: Streamlining PR and Commit Message Authoring with Semantic Kernel

本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

使用Skonsole自动生成Git提交信息的更多相关文章

  1. 写得好 git 提交信息

    编写好 git 提交信息 提交信息 我们作出答复,更改将提交相关信息,这些信息通常被认为是重要的信息会小心留下应该离开,你为什么需要这个提交实例,提交解决任何问题. 我们需要良好的信息组织,虽然后来, ...

  2. 用shell脚本新建shell文件并自动生成头说明信息

    目标: 新建文件后,直接给文件写入下图信息 代码实现: [root@localhost test]# vi AutoHead.sh #!/bin/bash#此程序的功能是新建shell文件并自动生成头 ...

  3. shell脚本模板----自动生成开头注释信息

    每当我们新建一个shell脚本都要去写一些繁琐的注释信息,这会浪费掉我们很多的时间,有没有感觉很痛苦呢? 哈哈 下面给大家分享一个shell脚本的模板文件,把它拷贝到用户的家目录下并命名成  .vim ...

  4. 用shell脚本新建文件并自动生成头说明信息

    目标: 新建文件后,直接给文件写入下图信息 代码实现: [root@localhost test]# vi AutoHead.sh #!/bin/bash #此程序的功能是新建shell文件并自动生成 ...

  5. git push撤销、git commit 撤销、git add撤销、修改git提交信息

    原文地址:http://leisure.wang/?p=472 虽然自觉是一个Git工具的老手了,但是平时犯了一点错误,就发现有点捉襟见肘了.就好像今天我把一些代码玩坏了,想撤回到前几个版本去(此时已 ...

  6. 怎么创建一个良好的Git提交信息

    译   原文:https://dev.to/chrissiemhrk/git-commit-message-5e21 提交信息是对提交之前添加和更改的文件所做的更改的简短描述. 良好的提交信息不仅对你 ...

  7. 在 Git 提交信息中使用 Emoji

    Gitmoji 旨在解释如何在 Git 提交消息时使用表情符号.在提交信息时使用表情符号,可以更容易地识别提交的目的或意图. Emoji 列表 :优化项目结构 / 代码格式 :art: ️ :性能提升 ...

  8. commit lint规范化团队git提交信息

    一.快速提交符号angular编码规范的提交信息 1.命令行中安装commitizen: npm install -g commitizen commitizen init cz-convention ...

  9. Flink SQL任务自动生成与提交

    目录 起因 思路 实现 1.配置 2.界面如下 3.环境 问题 起因 事情的起因,是看到一篇公众号文章Apache Flink 在汽车之家的应用与实践,里面提到了"基于 SQL 的开发流程& ...

  10. Mybatis使用generator自动生成映射配置文件信息

     使用mybatis配置映射文件比较的麻烦,但是有自动生成jar工具,方便加速开发速度,下面主要是该工具的使用以及相关的配置. 1.下载相关的资源 我们需要下载mybatis-generator-co ...

随机推荐

  1. 客户线上反馈:从信息搜集到疑难 bug 排查全流程经验分享

    写在前面:本文是我在前端团队的第三次分享,应该很少会有开发者写客户反馈处理流程以及 bug 排查的心得技巧,全文比较长,写了一个多星期大概1W多字(也是我曾经2年工作的总结),如果你有耐心阅读,我相信 ...

  2. 从源码分析 Go 语言使用 cgo 导致的线程增长

    TDengine Go 连接器 https://github.com/taosdata/driver-go 使用 cgo 调用 taos.so 中的 API,使用过程中发现线程数不断增长,本文从一个 ...

  3. 【一步步开发AI运动小程序】十一、人体关键点跳跃追踪

    随着人工智能技术的不断发展,阿里体育等IT大厂,推出的"乐动力"."天天跳绳"AI运动APP,让云上运动会.线上运动会.健身打卡.AI体育指导等概念空前火热.那 ...

  4. MySQL-class

    1.数据库和SQL概念 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它的产生距今已有六十多年.随着信息技术和市场的发展,数据库变的无处不在:它在电子商务.银行系统等众多领域都 ...

  5. Apikit SaaS 10.9.0 版本更新: 接口测试支持通过 URL 请求大型文件,支持导出为 Postman 格式文件

    Hi,大家好! Eolink Apikit 即将在 2023年 6月 8日晚 18:00 开始更新 10.9.0 版本.本次版本更新主要是对多个应用级资源合并,并基于此简化付费套餐和降低费率. 本次应 ...

  6. 一分钟学一个 Linux 命令 - find 和 grep

    前言 大家好,我是 god23bin.欢迎来到<一分钟学一个 Linux 命令>系列,每天只需一分钟,记住一个 Linux 命令不成问题.今天需要你花两分钟时间来学习下,因为今天要介绍的是 ...

  7. 【快应用】addEventListener()方法无法监听动画事件

    ​[关键词] 动画监听.动态改变 [问题背景] Style中设置动画样式,然后在onshow生命周期中调用addEventListener()方法去监听动画事件,无法监听到,该方法无任何回调返回 问题 ...

  8. 洛谷 P9047 [PA2021] Poborcy podatkowi

    题意 给一棵有边权的树,从中选出若干条长度为 4 的路径,要求边不交,求最大权值和. 数据范围:\(1\le n\le 2\times 10^5, -10^9\le w\le 10^9\). 题解 考 ...

  9. Winform或WebForm使用ReportViewer报表设计,工具栏按钮英文显示的解决办法

    在项目开发中,我们总是会用到rdlc报表设计器,大多数情况下在本地开发环境中工具栏按钮显示的是中文,但是部署到客户环境后发现显示的是英文. 解决这个问题也是走了很多弯路,给大家简单说一下: 1.最初以 ...

  10. 国标GB28181协议客户端开发(二)程序架构和注册

    国标GB28181协议客户端开发(二)程序架构和注册 本系列文章旨在探讨国标GB28181协议设备端的开发过程.本文将聚焦于架构设计和设备注册,并详细介绍了设备端的程序架构设计.exosip库介绍和接 ...