使用 AI 自動生成 Git Commit 訊息
本篇要解決的問題
每次更新完成式碼,比如修 Bug、開發新功能後,在寫 Git Commit 訊息時都會很懶,基本上寫出的就是當下的自己看得懂,但未來的自己,或是接手的人不一定看得懂的狀態,導致之後要回頭查某次的更新時,會耗掉很長的時間在找哪次的更新是不是有改某某功能。
人類不想花心力的工作,就交給 AI 去作。
August 用了 OpenAI API,再用便宜的 gpt-4o-mini 模型後,Commit 訊息可以秒生成。
因為用的是 API,會需要付費使用,但 gpt-4o-mini 真的便宜,猛用一個月搞不好用不到 1 美金。
會看到這篇筆記文的,應該都是開發一段時間過的攻城獅大大們,所以才也想要省掉寫 Git Commit 的心力,這篇就不細寫了,因為方式很簡單,本篇不再贅述細節,僅附上相關文章連結供參考。
準備好必要東西:OpenAI API Key
因為是調用 OpenAI API 來幫我們寫提交訊息,因此需要 Key。
要再次提醒,使用 AI 來寫提交訊息,是要酷 $$ 的,只是選對模型,可以很省錢。
這個步驟前幾篇有寫過,就不再重寫,請看:
CodiumAI PR-Agent,在 GitLab 上用 AI 來 Code Review
準備好必要的東西:安裝 Node.js
這篇其實也可以跳過的,前端攻城獅的電腦,沒有安裝 Node.js 的可能性比搶到無敵星星還低。
這邊附上 Node.js 的官方網址,請自行下載安裝:https://nodejs.org/zh-tw。
安裝後,可以用終端機執行以下,看是否安裝成功,有成功會回傳安裝的版本:
node -v
npm -v
安裝必要的 packages
為了調用 OpenAI API,需要二個 package:axios、dotenv。
- axios:用於處理 HTTP 請求,支援 Promise 和攔截器。
- dotenv:用於從 .env 檔案載入環境變數,防止敏感資訊外洩。
看大家習慣用什麼工具安裝,這邊附上基本款的 npm install
。
npm install -D axios dotenv
建立 .env 檔
.env 檔是拿來放 OpenAI API Key 用的,畢竟有了 Key,其他人就可以拿來用,為了保障我們 $$ 的生命安全,我們放進 .env 裡。
.env 檔內容如下:
OPEN_API_KEY_COMMIT=從 OpenAI 後台拿到的 Key
.env 檔,除非專案是私人的,或是公司自架的 Git,不然要避免傳上去。
新增 commit.cjs 檔
這步驟,就是要寫調用 OpenAI API 來幫我們產生 commit 訊息的程式碼。
Prompt 的部份,是 August 試過幾次後,覺得有符合自己需求的寫法,如果大家發現有更好的 Prompt,歡迎留言提供。
commit.cjs 內容如下:
程式碼裡,有避開去檢查 .min.
的檔案。
如果需要再避開什麼,就修改 filter
的部份,比方如果要再避掉 docs
資料夾中的文件,可以改為:
.filter(file => file && !file.includes('.min.') && !file.startsWith('docs/') && file.trim() !== '');
使用方式
我們編輯好程式碼,將要 commit 的檔案 用 git add
stage 以後,專案裡開啟終端機,輸入:
node commit.cjs
接著幾需要幾秒的時間(看檔案異動的多寡),就會看見 OpenAI 回傳了這次的 commit message。
會像這樣:
會提供兩個項目:簡短的 Summary、條例式也較詳細的 Description。
主要是因為大家使用 Git 的工具都不一樣,同事用 Sourcetree 就只有 Summary 可以填,但 August 用的是 Fork,就都可以填。
二項都列出來,大家自由選擇囉。
Top comments (0)