Thank you for your interest in contributing to CloudShell! This document provides guidelines and instructions for contributing.
- Node.js 20+ and npm
- A Cloudflare account (required for sandbox access)
- Git
-
Fork and clone the repository
git clone https://github.com/yourusername/cloudshell.git cd cloudshell -
Install dependencies
npm install
-
Configure Cloudflare
- Log in to your Cloudflare account
- Set up Cloudflare Access for local development
- Configure your
wrangler.tomlwith your account ID
-
Run locally
npm run dev
We use Vitest for unit tests and gateproof for integration/E2E tests.
# Run unit tests
npm run test:unit
# Run integration tests
npm run test:integration
# Run E2E tests
npm run test:e2e
# Run all tests with gateproof
npm run gateproofWe use strict TypeScript and ESLint:
# Run linter
npm run lint
# Fix linting issues
npm run lint:fix
# Check formatting
npm run format:check
# Format code
npm run format- No
anytypes: Use proper types orunknownwith type guards - Strict TypeScript: All code must pass
strict: true - Test coverage: New features should include tests
- Documentation: Update README.md for user-facing changes
-
Branch naming: Use descriptive branch names
feat/descriptionfor featuresfix/descriptionfor bug fixesdocs/descriptionfor documentationsecurity/descriptionfor security fixes
-
Commit messages: Follow conventional commits
feat(scope): Add new feature fix(scope): Fix bug docs(scope): Update documentation test(scope): Add tests security(scope): Security fix -
Before submitting:
- All tests must pass
- TypeScript must compile without errors
- ESLint must pass
- Code must be formatted with Prettier
-
PR description: Include
- What changed and why
- How to test the changes
- Any breaking changes
Please see SECURITY.md for our security policy and vulnerability reporting process.
- Open an issue for bugs or feature requests
- Start a discussion for questions or ideas
Thank you for contributing!