@sabo99/git-convention v1.3.1
@sabo99/git-convention
š @sabo99/git-convention is a simple CLI tool to set up Git conventions like Husky and Commitlint in your project.
š Features
ā Automatically installs and configures Husky š¶
ā Sets up Commitlint for commit message validation š
ā Works with any Node.js project š”
š¦ Installation
Install globally using npm:
npm install -g @sabo99/git-conventionOr use npx to run it without installation:
npx @sabo99/git-convention initš Usage
To set up Git conventions, run:
npx git-convention initThis will:
- Install Husky and Commitlint
- Configure Husky hooks (
commit-msg,pre-commit,pre-push) - Add
.commitlintrc.jsonto enforce conventional commits
š Git Commit Convention Examples
Follow the Conventional Commits standard:
feat(auth): add password reset functionality
fix(cart): resolve issue with item quantity update
refactor(utils): optimize data processing logic
chore(tests): update unit tests for new changes
docs(readme): update installation instructionsš Configuration
Customizing .commitlintrc.json
You can modify .commitlintrc.json to adjust commit message rules:
{
"extends": ["@commitlint/config-conventional"],
"rules": {
"header-max-length": [2, "always", 100],
"type-enum": [
2,
"always",
["chore", "docs", "feat", "fix", "refactor", "revert", "style", "test"]
],
"type-case": [2, "always", "lowercase"],
"type-empty": [2, "never"],
"scope-case": [2, "always", "kebab-case"],
"scope-empty": [2, "never"],
"subject-empty": [2, "never"],
"subject-full-stop": [2, "never", "."]
},
...
}Custom Husky Hooks
Modify .husky/pre-commit to add custom pre-commit scripts:
#!/usr/bin/env sh
. "$(dirname "$0")/_/husky.sh"
yarn lintModify .husky/pre-push to add custom pre-push scripts:
#!/usr/bin/env sh
. "$(dirname "$0")/_/husky.sh"
yarn test:covš¤ Contributing
Want to improve this package? Fork the repo and submit a PR! š
- Fork the repo
Clone your fork
git clone https://github.com/sabo99/git-convention.gitInstall dependencies
npm installMake your changes and test
- Submit a PR š
š License
This project is licensed under the MIT License - see the LICENSE file for details.
ā Show Your Support
Give a ā if you like this project!