commit-editor

<h1 align="center"><img width="28" src="https://raw.githubusercontent.com/wtho/commit-editor/main/app/public/logo.svg" alt="Commit Editor Logo" /> Commit Editor</h1>

Commit Editor Logo Commit Editor

Interactive commitlint support to boost your conventional commits and semantic release productivity

Link to playground NPM Version Deployment Pipeline Test Coverage GitHub license

powered by Commitlint, Monaco-Editor, Vue3 & Vite

Getting started

You can use it to commit in your codebase using the commit-editor by running

npx commit-editor

from where you would run git commit. The command then calls git commit internally, only modifying the editor used in the command to open the commit-editor in your browser, served by a lightweight local server.

You can even append options like npx commit-editor --amend, they get passed through to git commit.

Commit-editor will load the Commitlint config from commitlint.config.js (or commitlint.config.ts) or , if no config is found, use a basic config with the @commitlint/config-conventional preset.

Alternatively you can test out and tinker with your commitlint config using the playground served at netlify.

To use commit-editor as your all-time editor, set the editor as your default using git conig --global core.editor="npx commit-editor"

Motivation

While the benefits of the combination of conventional commits, conventional changelog and semantic release are immense, the experience of existing post-compose commit validation tools can be frustrating. Feedback is supplied very late and the message lost if it does not pass the validation. This is specifically frustrating for semantic-release novices.

This editor tackles this issue by providing commit lint information during the composing process, like we are used to it when writing our code.

Post-compose commit validation can still be applied after the message composing.

Experience with post-compose commit validation

Experience with commit-editor

Give it a try in the playground.