使用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. pg_enterprise_views偶然发现的PG神仙插件!

    一直从事数据库相关的工作,对于PG而言最大的问题其实是在运维管理方面,其缺乏有效且直观成体系的系统表,苦觅良久,今日在PG官网中发现了一款新收录的免费插件,其提供了数十张系统表,内容涵盖了从操作系统到 ...

  2. DevEco Studio 3.1 Release | 动态共享包开发,编译更快,包更小

      原文:https://mp.weixin.qq.com/s/qPvHZNZuLccAsviBcXtPWw,点击链接查看更多技术内容. 动态共享包(HSP)开发是DevEco Studio 3.1  ...

  3. 记一次 Oracle 下的 SQL 优化过程

    1. 介绍 事情是这样的,UAT 环境的测试小伙伴向我扔来一个小 bug,说是一个放大镜的查询很慢,转几分钟才出数据,我立马上开发环境试了一下,很快啊我说,放大镜的数据立马就出来了,然后我登录 UAT ...

  4. [vuex] unknown action type:***

    vuex 分模块后使用mapActions调用action老是提示 [vuex] unknown action type:*** 异常 目录 index.js是这样的 import Vue from ...

  5. 终极指南!Terraform的进阶技巧

    如果您已经对 Terraform 了如指掌,并期望自己的 IaC 技能有进一步提升的话,这篇文章很适合您!在本文中,我们将分享一些 Terraform 的高级使用技巧.从使用模块(module).工作 ...

  6. 【Java技术专题】「攻破技术盲区」带你攻破你很可能存在的Java技术盲点之动态性技术原理指南(反射技术专题)

    @ 目录 带你攻破你很可能存在的Java技术盲点之动态性技术原理指南 编程语言的类型 静态类型语言 动态类型语言 技术核心方向 反射API 反射案例介绍 反射功能操作 获取构造器 长度可变的参数 - ...

  7. 数据库varchar和tinyint和int和java实体属性的对应关系的学习

    大家好,最近做项目碰到群里小伙伴的对于项目中用到的这几个类型,自己的java实体类属性该用什么类型干到困惑,于是乎,我决定为大家解密! 相信我,绝对干货,看完了,工资+200~哈哈哈,扯远了,闲话不对 ...

  8. Python开发中自动化构建项目结构样式

    摘要:在项目开发过程中,一个良好的项目结构对于团队的协作和代码的可维护性起着重要作用.通过使用自动生成项目结构文字样式的工具.不仅节省了手动编写项目结构的麻烦,还确保了结构的一致性和准确性. 本文分享 ...

  9. APP中Web容器的核心实现

      现在的业务型APP中,采用纯原生开发策略的已经很少了,大部分都使用的混合开发.如原生,H5,ReactNative,Flutter,Weex它们之间任意的组合就构成了混合开发. 其中原生+H5是出 ...

  10. Linux 图形栈从入门到放弃 --- Linux 图形相关概念简介

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   无 前言   在日常生活中,像我们常用的ubunt ...