Spawned by the dream to automate away the tedium of writing commit messages, coco
has grown into a multi-facetted git assistant to expedite any developer git workflow.
Currently coco
generates commit messages, creates changelogs, summarizes code changes, perform code review, and more - with new features being added regularly!
-
commit
: generates commit messages based on staged changes. -
changelog
: create changelogs for the current branch or a range of commits. -
recap
: summarize changes from working-tree, or yesterday, or in the last month, or since the last tag. -
review
: perform a code review on the changes in the working directory. -
init
: step by step wizard to set upcoco
globally or for a project. -
help
: display help forcoco
commands.
coco init
is the first step to getting started with coco
. It will guide you through the installation process, including setting up your OpenAI API key and configuring coco
to your preferences.
# For local project use
npx git-coco@latest init -l project
# For global use
npx git-coco@latest init -l global
Generates commit messages based on staged changes.
coco
# or
coco commit
# --append
# Add content to the end of the generated commit
coco --append "Resolves #128"
# --append-ticket
# Automatically append Jira/Linear ticket ID from the branch name to the commit message
coco --append-ticket
# --additional
# Add extra context before generating the commit
coco --additional "Resolves UX bug with sign up button"
Creates changelogs.
# For the current branch
coco changelog
# For a specific range
coco changelog -r HEAD~5:HEAD
# For a target branch
coco changelog -b other-branch
Summarize the working-tree, or other configured ranges
# Summarize all working directory changes
coco recap
# Or these available ranges
coco recap --yesterday | --last-week | --last-month | --last-tag
coco
offers two modes of operation: stdout and interactive, defaulting to stdout. You can specify your preferred mode in your config file or via command line flags.
# Stdout mode
git commit -m $(coco)
# Interactive mode
coco -i
coco
can generate and commit your changes in one command.
coco -s
The .coco.config
documentation has moved to our wiki. Here, you'll find detailed information on setting up and customizing your experience.
You can specify files to be ignored when generating commit messages by adding them to your config file or via command line flags. Read more about ignoring files & extensions in the wiki.
We welcome contributions! Check out our CONTRIBUTING.md for more information.
MIT © gfargo