Code Monkey home page Code Monkey logo

commitlint's Introduction

Lint commit messages

Demo generated with svg-term-cli

cat docs/assets/commitlint.json | svg-term --out docs/assets/commitlint.svg --frame --profile=Seti --height=20 --width=80

commitlint slack

npm latest Travis branch AppVeyor branch

  • ๐Ÿš“ Be a good commitizen
  • ๐Ÿ“ฆ Share configuration via npm
  • ๐Ÿค– Tap into conventional-changelog

Contents


Getting started

# Install commitlint cli and angular config
npm install --save-dev @commitlint/{config-conventional,cli}
# For Windows:
npm install --save-dev @commitlint/config-conventional @commitlint/cli

# Configure commitlint to use angular config
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js

To lint commits before they are created you can use the 'commitmsg' hook as described here

{
  "scripts": {
    "commitmsg": "commitlint -e $GIT_PARAMS"
  }
}

Detailed Setup instructions

CLI

  • Primary way to interact with commitlint.
  • npm install --save-dev @commitlint/cli
  • Packages: cli

Config

  • Configuration is picked up from commitlint.config.js, .commitlintrc.js, .commitlintrc.json, or .commitlintrc.yml file or a commitlint field in package.json
  • Packages: cli, core
  • See Rules for a complete list of possible rules
  • An example configuration can be found at @commitlint/config-conventional

Shared configuration

A number of shared configurations are available to install and use with commitlint:

API

  • Alternative, programatic way to interact with commitlint
  • Packages:
    • format - Format commitlint reports
    • lint - Lint a string against commitlint rules
    • load - Load shared commitlint configuration
    • read - Read commit messages from a specified range or last edit
  • See API for a complete list of methods and examples

Tools

Roadmap

Ideas: marionebl/commitlint#94

commitlint is considered stable and is used in various projects as development tool.

We indentify ease of adoption and developer experience as fields where there is room and need for improvement. The items on the roadmap should enhance commitlint regarding those aspects.

  • Adoption: Provide reusable Travis CI integration: @commitlint/travis-cli (https://github.com/marionebl/commitlint/releases/tag/v5.1.0)
  • DX: Support PR squash scenario via ahmed-taj/commitlint-bot and @commitlint/travis-cli
  • Adoption: Make ahmed-taj/commitlint-bot configurable via commitlint configuration
  • Adoption: Create commitlint init
  • DX: Extend the configuration schema to allow for additional fields (descriptions, examples, fixes) on both the rule and value level
  • DX: Incorporate an extended version of lennym/commit-template deducing a template from commitlint configuration
  • DX: Rewrite @commitlint/prompt for better usability (might involve a lot of yak-shaving)

Version Support

  • Node.js LTS >= 4.8
  • git >= 2

Related projects

License

Copyright by @marionebl. All commitlint packages are released under the MIT license.

Development

commitlint is developed in a mono repository.

Install and run

git clone [email protected]:marionebl/commitlint.git
cd commitlint
npx yarn install
npx yarn run build # run build tasks
npx yarn start # run tests, again on change

For more information on how to contribute please take a look at our contribution guide.

Publishing a release

npx yarn run clean
npx yarn install
npx yarn run build
npx yarn test
npx yarn run publish

commitlint's People

Contributors

adam-moss avatar blackxored avatar christianmurphy avatar coderbyheart avatar ellerbrock avatar escapedcat avatar guidobouman avatar honzajavorek avatar hulkish avatar jlegrone avatar krotscheck avatar kumarharsh avatar lc-soft avatar leohxj avatar liubiantao avatar macklinu avatar marionebl avatar pixelass avatar quentinroy avatar redian avatar renovate-bot avatar renovate[bot] avatar rugal avatar satazor avatar scrum avatar simeonc avatar tx44 avatar whizark avatar wtgtybhertgeghgtwtg avatar ybiquitous avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.