id = "czg"
name = "czg"
homepage = "https://cz-git.qbb.sh/cli/"
description = "Interactive CLI that generate standardized git commit messages."
executables = ["czg"]
[dotfiles]
paths = ["~/.czrc"]
exclude = []
secret = ["~/.config/.czrc"]
[commands]
format = 1
label = "Generate a commit"
description = "Run the interactive commit prompt, optionally with mode subcommands (ai, emoji, ...) and AI settings. Extra git commit options, aliases and API key setup are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "help"
kind = "help"
url = "https://cz-git.qbb.sh/cli/"
revision = "czg --help on cz-git.qbb.sh/cli"
evidence = """
SYNOPSIS:
czg [subcommand...] [options...] [git-commit-options...]
SUBCOMMAND:
ai Turn on OpenAI generate subject mode
break Turn on appends a ! after the type/scope
emoji Turn on output message with emoji mode
checkbox Turn on scope checkbox mode
gpg Turn on use GPG sign commit message
OPTIONS:
--config= Specify the configuration file to use
-N=,--ai-num= Sets AI return multiple subjects and Turn on choose mode
-M=,--ai-model= Sets AI model in this session
FLAG:
-r, --retry Directly retry submit by the last message
--no-ai Turn off AI prompt mode in this session
"""
[[commands.field]]
id = "modes"
label = "Modes"
description = "Subcommands that switch on a mode for this commit."
type = "string"
position = 0
multiple = true
suggestions = [{ value = "ai", label = "AI-generated subject" }, { value = "emoji", label = "Emoji" }, { value = "break", label = "Breaking change (!)" }, { value = "checkbox", label = "Scope checkbox" }, { value = "gpg", label = "GPG sign" }]
sources = ["help"]
[[commands.field]]
id = "config"
label = "Config file"
type = "path"
option = ["--config"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["help"]
[[commands.field]]
id = "ai_num"
label = "Number of AI subjects"
type = "integer"
option = ["--ai-num"]
sources = ["help"]
[[commands.field]]
id = "ai_model"
label = "AI model"
type = "string"
option = ["--ai-model"]
suggestions = [{ value = "gpt-4o-mini", label = "gpt-4o-mini" }, { value = "gpt-4o", label = "gpt-4o" }, { value = "gpt-3.5-turbo", label = "gpt-3.5-turbo" }]
sources = ["help"]
[[commands.field]]
id = "retry"
label = "Retry last message"
type = "boolean"
option = ["--retry", "-r"]
sources = ["help"]
[[commands.field]]
id = "no_ai"
label = "Turn off AI this session"
type = "boolean"
option = ["--no-ai"]
sources = ["help"]
[[commands.task]]
id = "commit"
label = "Interactive commit"
fields = ["modes", "config"]
required = []
[[commands.task]]
id = "ai"
label = "AI-assisted commit"
set = { modes = ["ai"] }
fields = ["modes", "ai_num", "ai_model"]
required = []
[[commands.task]]
id = "retry"
label = "Retry last commit message"
set = { retry = [true] }
lock = ["retry"]
fields = ["retry"]
required = []
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["modes", "ai_num", "ai_model", "retry"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["config", "no_ai"]