Thank you for your interest in contributing to git-commitai! This document provides guidelines and instructions for contributing to this project.
By participating in this project, you agree to abide by our Code of Conduct. Please read it before contributing.
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include screenshots if possible
- Include the output of any error messages
- Include your operating system and version
- Include the version of Node.js you're using
If you have a suggestion for a new feature or enhancement, please include as much detail as possible:
- Use a clear and descriptive title
- Provide a detailed description of the proposed functionality
- Explain why this enhancement would be useful
- List any similar features in other applications
- Include screenshots if applicable
- Fork the repo and create your branch from
main - If you've added code that should be tested, add tests
- If you've changed APIs, update the documentation
- Ensure the test suite passes
- Make sure your code lints
- Issue that pull request!
- Node.js (v16 or higher)
- Git
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR-USERNAME/git-commitai.git
- Add the original repository as upstream:
git remote add upstream https://github.com/SaharAvr/git-commitai.git
- Install dependencies:
npm install
- Create a new branch for your feature/fix:
git checkout -b feature/your-feature-name
- Make your changes
- Run tests:
npm test - Run linting:
npm run lint
- Build the project:
npm run build
- Commit your changes following the Conventional Commits specification
- Push to your fork:
git push origin feature/your-feature-name
- Create a Pull Request
- We use ESLint and Prettier for code formatting
- Run
npm run lintto check for style issues - Run
npm run formatto automatically fix style issues
- Write tests for new features and bug fixes
- Run
npm testto execute the test suite - Run
npm run test:coverageto check test coverage - Maintain or improve the current test coverage
- Update documentation for any new features or changes
- Follow the existing documentation style
- Include JSDoc comments for new functions and classes
We follow the Conventional Commits specification. Please format your commit messages accordingly:
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
Types:
feat: A new featurefix: A bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code changes that neither fix bugs nor add featuresperf: Performance improvementstest: Adding or modifying testschore: Changes to the build process or auxiliary tools
- All pull requests require at least one review
- CI checks must pass
- Code coverage must be maintained or improved
- Documentation must be updated if necessary
Feel free to open an issue for any questions you might have about contributing.