はじめに
私はcommitメッセージを英語で書く派なのですが、英語って難しいなと日々感じています。
正直なところ、つい最近まではcommitメッセージの丁寧さをそこまで意識せず、ざっくりの感覚で書いていたのは否めないです。
これを改善するための手段として、最近AIの使い道を模索する中で良さそうなものを発見したので記事に残したいと思います。
目的
どういう単語を使えば良いのか?どういう文章を書けば良いのか?その辺をちゃんと意識してcommitメッセージを作ろうとした時に、時間がかかっちゃうので参考になる文章がほしい。
こういった例文をまとめた記事もすごくありがたく参考になるのですが、AIによる自動生成はやっぱり欲しいなぁ。そんな思いです。
commitメッセージを自動生成する
VSCodeの拡張機能 GitLens を使います。
エディタ上でコードの履歴や変更点を視覚的に把握しやすくする拡張機能です。
現在Experimentalではありますが、いくつかのAI Modelを用いたcommitメッセージの自動生成が行えるようになっています。
事前準備
まずはGitLens をインストールしましょう。
AI Model選択
VSCodeで Command + Shift + p
(Windowsの場合は Ctrl + Shift + p
) を押下してコマンドパレットを開きます。
そこで、gitlens: Switch AI Model
と入力します。
お好きなModelを選択して、APIキーの設定をすれば終了です。
Generate Commit Message!
今回はREADMEを修正してみます。
git add しましょう。
そして右上の3点リーダーからGenerate Commit Message!
出てきました。
題・説明も書いてくれるみたいです。
簡潔なメッセージにしたい
commitメッセージのprefixとか、言語設定(日本語・英語)は、会社によって違ったりすると思います。
なので、カスタマイズしていきましょう。
settings.json
の "gitlens.experimental.generateCommitMessagePrompt":
で、実行時に与えるpromptを自由に指定することができるようです。
私の場合、
- 1行の英語のcommitメッセージにしたい
- prefixはつけたい
という希望がありました。
promptに規約を含める
"gitlens.experimental.generateCommitMessagePrompt": "Semantic Commit MessageおよびCommit Message Guidelineに従い、英語のコミットメッセージを1行で作成してください。"
Semantic Commit MessageやCommit Message Guidelineは、人間と機械が読みやすく、意味のあるcommitメッセージにするためのフォーマット仕様です。
この規則に沿うことでprefixがついたり比較的読みやすい文章が生成されます。
やってみると、期待通りのメッセージで生成されるようになりました。
commitメッセージは改行できるので、別に無理やり1行にしなくても良いのでは?という意見もあると思います。
しかし、会社内でcommitの粒度を小さくしていこう!という動きがあるため、敢えてこの設定にしています。
generateした結果が超アバウトな内容だったり、超長いメッセージだったりすると、そもそもcommitを分けようって考えに至るよね。たぶん。
あとは楽に実行する
いちいち3点リーダーからGenerate Commit Messageを押すのも面倒です。
なのでショートカットキーを設定します。
Command + Shift + p
(Windowsの場合は Ctrl + Shift + p
) を押下してコマンドパレットを開き、Preferences: Open Keyboard Shortcuts
と入力し、
Gitlens: generate Commit Message
と入力し、好きなショートカットコマンドを設定しましょう。
これで楽に実行できるようになります。
最後に
実際やってみると、おお、こんな単語使うのか〜とかこんな文章書けば良いのか〜みたいな気付きがあって面白いです。
生成された文章が適切かどうかは都度判断必要かと思いますが、気をつけながらうまく取り入れていきたいと思います。(言うまでも無いことですね)