We are always looking for quality contributions and will be happy to accept your Pull Requests as long as they adhere to some basic rules.
Renovate Playground is a web-based tool that helps developers test and debug Renovate configurations in real-time without making actual changes to repositories.
The Open Source Guides website has a collection of resources for individuals, communities, and companies. These resources help people who want to learn how to run and contribute to open source projects. Contributors and people new to open source alike will find the following guides especially useful:
This is an Nx monorepo organized with multiple applications:
apps/api- NestJS backend that spawns and manages Renovate processesapps/ui- Angular 20 frontend with Material Design components
The backend provides:
- RESTful API endpoints for Renovate execution
- Real-time log streaming via Server-Sent Events (SSE)
- Temporary configuration management
- Process lifecycle management
The frontend delivers:
- Interactive configuration editor
- Real-time log viewer
- Results visualization (package files, branches, updates)
- Responsive Material Design UI
If you want to play with Renovate Playground on your own machine:
-
Clone the project
git clone https://github.com/AmadeusITGroup/renovate-playground.git cd renovate-playground -
Install dependencies
pnpm install
-
Start the development servers
pnpm start
-
Open the application
- Navigate to http://localhost:4200 in your browser
- The API runs on http://localhost:3333
To know more about the different commands you can run locally, please check the sections below.
Several commands are available to help you develop and test the application. You can run commands for specific applications or all at once.
Start both UI and API concurrently:
pnpm startOr run them separately:
# Terminal 1 - Start the API (http://localhost:3333)
pnpm start:api
# Terminal 2 - Start the UI (http://localhost:4200)
pnpm start:uiUsing Nx directly:
# Run specific application
nx serve api
nx serve ui
# Run with specific configuration
nx serve api --configuration=developmentBuild all applications:
pnpm buildBuild specific application:
nx build api --configuration=production
nx build ui --configuration=productionBuild Docker image:
docker build -t renovate-playground:latest .Run all tests:
pnpm testRun tests for specific application:
nx test api
nx test uiRun tests in watch mode:
nx test api --watch
nx test ui --watchRun tests with coverage:
nx test api --coverage
nx test ui --coverageLint all code:
pnpm lintLint specific application:
nx lint api
nx lint uiFormat code:
pnpm formatCheck formatting without making changes:
prettier --check "**/*.{ts,html,scss,json}"- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/renovate-playground.git cd renovate-playground - Add upstream remote:
git remote add upstream https://github.com/ORIGINAL_OWNER/renovate-playground.git
Create a descriptive branch for your changes:
git checkout -b feature/add-gitlab-support
git checkout -b fix/log-streaming-timeout
git checkout -b docs/update-readme- Write clean, readable code
- Follow existing code patterns and conventions
- Add tests for new features
- Update documentation as needed
- Ensure all tests pass
Follow the Conventional Commits specification:
type(scope): subject
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, semicolons, etc.)refactor: Code refactoring without changing functionalitytest: Adding or updating testschore: Maintenance tasks, dependency updatesperf: Performance improvements
Examples:
git commit -m "feat(api): add support for GitLab repositories"
git commit -m "fix(ui): resolve SSE connection timeout issue"
git commit -m "docs(readme): add Docker deployment instructions"
git commit -m "test(api): add unit tests for PlaygroundService"git fetch upstream
git rebase upstream/mainBefore submitting, ensure everything passes:
pnpm format
pnpm lint
pnpm test
pnpm buildgit push origin feature/your-feature-nameThen create a Pull Request on GitHub with:
- Clear, descriptive title
- Detailed description of changes
- Reference to related issues (if any)
- Screenshots for UI changes
- Use TypeScript for all code
- Enable strict type checking
- Avoid
anytypes - use proper types orunknown - Use interfaces for object shapes
- Prefer
constoverlet, avoidvar
- Follow the Angular Style Guide
- Use standalone components (Angular 20+)
- Implement
OnPushchange detection where appropriate - Use reactive forms over template-driven forms
- Keep components focused and single-purpose
- Use RxJS operators effectively
- Follow NestJS best practices
- Use dependency injection
- Implement DTOs for validation
- Use proper error handling with filters
- Document API endpoints with Swagger decorators
- Use guards for authentication/authorization
- Write self-documenting code with clear names
- Add comments for complex logic
- Keep functions small and focused
- Avoid deep nesting
- Handle errors gracefully
- Log important events and errors
- Write tests for new features and bug fixes
- Test edge cases and error scenarios
- Use descriptive test names
- Follow the AAA pattern: Arrange, Act, Assert
- Mock external dependencies
- Code follows the project's style guidelines
- All tests pass locally
- Linting passes without errors
- Code is properly formatted
- New tests added for new features
- Documentation updated if needed
- Commit messages follow conventional commits
- Branch is up to date with main
## Description
Brief description of what this PR does and why.
## Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Code refactoring
- [ ] Performance improvement
## Related Issues
Fixes #(issue number)
Relates to #(issue number)
## How Has This Been Tested?
Describe the tests you ran and how to reproduce them.
## Screenshots (if applicable)
Add screenshots for UI changes.
## Checklist
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changesIf you have questions or need help:
- Check existing documentation: README.md and this CONTRIBUTING.md
- Search existing issues: Someone might have already asked
- Create a new issue: Use the
questionlabel - Join discussions: Participate in GitHub Discussions (if enabled)
By participating in this project, you agree to:
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Accept constructive criticism gracefully
- Focus on what is best for the community
- Show empathy towards other community members
By contributing to Renovate Playground, you agree that your contributions will be licensed under the same license as the project.
Thank you for contributing to Renovate Playground! 🎉