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.

โš ๏ธ Important

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
๐Ÿ’ก Pro Tip

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

โœ… Good Example

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.

๐Ÿงช Testing Strategy

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! ๐Ÿš€