使用Skonsole自動生成Git提交資訊

2023-08-31 21:01:11

使用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 國際許可協定進行許可。