- Notifications
You must be signed in to change notification settings - Fork15
A highly configurable CLI tool for writing conventional commits
License
stefanlogue/meteor
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Meteor is a simple, highly customisable CLI tool that helps you to writeconventional commits with git.
You can callmeteor
where you'd normally typegit commit
. All flagssupported ingit commit
will still work.
brew tap stefanlogue/toolsbrew install meteor
Install with Go (1.21+):
go install github.com/stefanlogue/meteor@latest
Or grab a binary fromthe latest release.
You can customise the options available by creating a.meteor.json
fileanywhere in the directory tree (at or above the current working directory). Theconfig file closest to the current working directory will be preferred. Thisenables you to have different configs for different parent directories, such asone for your personal work, one for your actual work, one for open source worketc. For global configurations you can create aconfig.json
file in the~/.config/meteor/
directory.
The content should be in the following format:
{"boards": [ {"name":"COMP" }, {"name":"PERS" } ],"coauthors": [ {"name":"John Doe","email":"john.doe@email.com" } ],"prefixes": [ {"type":"feat","description":"a new feature"}, {"type":"fix","description":"a bug fix"}, {"type":"bug","description":"introducing a bug"} ],"commitTitleCharLimit":60}
If you use boards (Jira etc) but need a way to have commits without one, add thefollowing to theboards
array:
{"boards": [ {"name":"COMP" }, {"name":"NONE" } ]}
If you want to define a set of predefined scopes to select from rather thantyping the scope, ascopes
array can be added to your config:
Warning
Setting predefined scopes removes the ability to type the scope
{"scopes": [ {"name":"scope1" }, {"name":"scope2"} ]}
If the default commit message templates aren't exactly what you're looking for,you can provide your own! The syntax can be seen in the defaults below:
{"messageTemplate":"@type(@scope): @message","messageWithTicketTemplate":"@ticket(@scope): <@type> @message"}
messageTemplate
needs to have:
@type
: the conventional commit type i.e.feat
,chore
etc.@message
: the commit message(@scope)
: (optional but recommended) the scope of the commit, must be withinparentheses
messageWithTicketTemplate
also additionally takes@ticket
If you want to skip the intro screen to save a keypress, add the following toyour config:
{"showIntro":false}
About
A highly configurable CLI tool for writing conventional commits