Thank you for your interest in contributing! 🎉
- Bun 1.3+
- Kubernetes cluster (for testing)
- Docker
# Clone the repository
git clone https://github.com/svitio-company/image-replicator.git
cd image-replicator
# Install dependencies
bun install
# Run tests
bun test
# Run in development mode
bun run devBefore creating a bug report, please check existing issues. When creating a bug report, include:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Environment details (Kubernetes version, registry type)
- Logs (if applicable)
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear title
- Provide detailed description
- Explain why this would be useful
- Include examples (if applicable)
- Fork the repo and create your branch from
main - Follow semantic commit messages:
feat:New featurefix:Bug fixdocs:Documentationtest:Testschore:Maintenance
- Add tests for your changes
- Update documentation if needed
- Ensure all tests pass:
bun test - Type-check passes:
bun run type-check - Create a PR with clear description
- Use TypeScript strict mode
- Follow existing code patterns
- Add JSDoc comments for public APIs
- Keep functions small and focused
Follow Conventional Commits:
feat: add support for Harbor registry
fix: resolve authentication timeout issue
docs: update helm chart installation guide
test: add integration tests for image cloning
chore: update dependencies
# Run all tests
bun test
# Run tests in watch mode
bun test --watch
# Run benchmarks
bun run benchmark
# Type check
bun run type-check- Create an issue first (for significant changes)
- Fork and create a feature branch
- Make your changes
- Add tests
- Run tests and type-check
- Submit PR referencing the issue
- Address review feedback
├── src/
│ ├── handlers/ # Admission webhook handlers
│ ├── services/ # Core services (registry client, metrics)
│ ├── utils/ # Utilities (image parser, credentials)
│ └── types/ # TypeScript type definitions
├── chart/ # Helm chart
├── .github/workflows/ # CI/CD pipelines
└── benchmark.ts # Performance benchmarks
Releases are automated:
- Maintainers merge PRs to
main - Create a git tag:
git tag v1.0.0 - Push tag:
git push origin v1.0.0 - GitHub Actions builds Docker image and Helm chart
- Release published automatically
This project adheres to the Contributor Covenant Code of Conduct.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.
Feel free to open a discussion or reach out to maintainers!