Contributing to .git
Thank you for your interest in making .git better! We welcome contributions from developers of all experience levels. This guide will help you get started quickly and ensure your contributions align with our standards.
Code of Conduct
We are committed to providing a friendly, safe, and welcoming environment for all contributors regardless of gender, sexual orientation, disability, ethnicity, religion, or level of experience.
By participating, you agree to abide by our Open Source Code of Conduct. Unacceptable behavior will not be tolerated and may result in immediate removal from the project.
Development Setup
Follow these steps to get your local development environment ready:
git clone https://github.com/.git/platform.git
cd platform
pnpm install
cp .env.example .env
Ensure you have the following installed:
- Node.js >= 18.x
- pnpm >= 8.x (recommended package manager)
- Docker & Docker Compose (for local services)
- Git >= 2.30
# Start local dev server
pnpm dev
# Spin up required services (Postgres, Redis, Kafka)
docker compose up -d
Use pnpm setup to automatically configure local environment variables and seed the development database.
Branching & Workflow
We follow a modified Gitflow workflow. Please adhere to these naming conventions:
| Prefix | Purpose | Example |
|---|---|---|
feat/ |
New feature or enhancement | feat/edge-caching |
fix/ |
Bug fixes | fix/deploy-timeout |
chore/ |
Config, deps, or maintenance | chore/update-deps |
docs/ |
Documentation updates | docs/api-auth-flow |
Always branch off of main and never push directly to protected branches.
Commit & PR Guidelines
We use Conventional Commits. Follow this format:
type(scope): description
[optional body]
[optional footer(s)]
Valid types: feat, fix, docs, style, refactor, perf, test, chore, ci
feat(deployer): add zero-downtime rollout support
Pull Request Requirements:
- Link to an existing issue or create one describing the problem/solution
- Include before/after screenshots or CLI output for UI/UX changes
- Ensure all CI checks pass before requesting review
- Request review from at least 1 maintainer
Testing & Linting
All contributions must pass our automated quality gates:
# Run linting & type checking
pnpm lint
# Run unit & integration tests
pnpm test
# Run end-to-end tests
pnpm test:e2e
We aim for >80% code coverage for new features. Use pnpm test -- --coverage to check coverage locally before pushing.
Use Vitest for unit tests, Playwright for E2E, and Supertest for API integration tests. Follow existing patterns in the __tests__/ directories.
Community & Support
Have questions or need help getting started? Join our community channels:
- Discord: #contributing channel for real-time help
- GitHub Discussions: For feature proposals and Q&A
- Weekly Office Hours: Every Thursday at 15:00 UTC
Thank you for helping us build a better developer experience. Every line of code, documentation fix, and bug report matters. We can't wait to merge your contributions! ๐