Thank you for your interest in contributing to GitHub Commits Leaderboard.
- Fork the repository
- Clone your fork locally
- Set up the development environment (see README.md)
- Create a new branch for your changes
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your configuration
# Run database migrations
node scripts/migrate.mjs
# Start development server
npm run devUse descriptive branch names:
feature/add-user-search- New featuresfix/leaderboard-pagination- Bug fixesdocs/api-examples- Documentation updatesrefactor/db-queries- Code refactoring
Write clear, concise commit messages:
- Use the imperative mood ("Add feature" not "Added feature")
- Keep the first line under 72 characters
- Reference issues when applicable ("Fix #123: Resolve pagination bug")
- Follow the existing code style
- Run
npm run lintbefore committing - Run
npm run typecheckto ensure type safety - Format code with Prettier (configured in the project)
- Test your changes locally before submitting
- Ensure the build passes:
npm run build - Test with the local development server
- Update documentation if needed
- Add or update tests if applicable
- Ensure all checks pass
- Rebase on the latest main branch
Include in your pull request:
- A clear description of the changes
- The motivation for the changes
- Any breaking changes
- Screenshots for UI changes
- PRs require at least one approval before merging
- Address review feedback promptly
- Keep PRs focused and reasonably sized
- Use the GitHub issue tracker
- Include steps to reproduce
- Include expected vs actual behavior
- Include environment details
- Open an issue to discuss before implementing
- Explain the use case and benefits
- Consider backwards compatibility
- Fix typos and improve clarity
- Add examples and explanations
- Keep documentation up to date with code changes
- Bug fixes
- Performance improvements
- New features (discuss first)
- Refactoring (with clear benefits)
- Changes that compromise user privacy
- Features that enable abuse or gaming of the leaderboard
- Dependencies with incompatible licenses
- Code without proper error handling
If you have questions about contributing, open a discussion on GitHub or reach out to the maintainers.
By contributing, you agree that your contributions will be licensed under the MIT License.