How to generate commit messages with OpenAI in Dart?

Thit Lwin
2 min readNov 23, 2023

--

If you want to generate commit messages automatically, you can use the ai_commit package that was developed by me :).

Quick Started 🚀

Installing

dart pub global activate ai_commit

Or install a specific version using:

dart pub global activate ai_commit <version>

Commands

ai_commit -h

See the complete list of commands and usage information.

Dart CLI for generated commit messages with OpenAI.

Usage: ai_commit <command> [arguments]

Global options:
-h, --help Print this usage information.
-a, --all Automatically stage changes in tracked files for the commit
-c, --count Count of messages to generate (Warning: generating multiple costs more)
-m, --model Locale language for commit message.
-x, --exclude Files to exclude from AI analysis
-l, --max-length Set max length of commit message.
--locale Locale language for commit message.
--[no-]conventional Format the commit message according to the Conventional Commits specification.
-v, --version Print the current version.
--[no-]verbose Noisy logging, including all shell commands executed.

Available commands:
config ai_commit configuration
update Update the CLI.

Run "ai_commit help <command>" for more information about a command.

ai_commit config

Save data configuration and use later.

ai_commit configuration

Usage: ai_commit config [arguments]
-h, --help Print this usage information.
--key OpenAI API key.
--locale Set locale language.
--count Generate commit message count.
--[no-]conventional Format the commit message according to the Conventional Commits specification.
--model Set model name for OpenAI API.
--max-length Set max length of commit message.

Run "ai_commit help" to see global options.

Usage

Before using you need to set the OpenAI API key

ai_commit config --key sk-xxx

Generate commit message

ai_commit

Add all files and generate a commit message

ai_commit -a

Count of messages to generate (Warning: generating multiple costs more)

# one time use
ai_commit -c 2

# save data to config
ai_commit config -c 2

OpenAI model to use for generation

# one time use
ai_commit -m gpt-3.5-turbo-1106

# save data to config
ai_commit config -m gpt-3.5-turbo-1106

Files to exclude from AI analysis

# single
ai_commit -x test.dart

# multiple
ai_commit -x one.dart, two.dart

Max length of the commit message

# one time use
ai_commit -l 200

# save data to config
ai_commit config -l 200

Locale language for commit message

# one time use
ai_commit --locale en

# save data to config
ai_commit config --locale en

Format the commit message according to the Conventional Commits specification.

# one time use
ai_commit --conventional

# save data to config
ai_commit config --conventional

Disable Conventional Commits Format

ai_commit --no-conventional

# save data to config
ai_commit config --no-conventional

I hope this package is useful in your project. If you want to support me, check this link :

https://ko-fi.com/thitlwincoder

--

--