8000
Skip to content

pacphi/ampel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

42 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ampel 🚦

CI codecov License: MIT

See your PRs at a glance. Ampel brings traffic light simplicity to PR management across GitHub, GitLab, and Bitbucket.

Ampel (German for "traffic light") is a unified PR dashboard that consolidates pull requests from multiple Git providers into a single interface, using an intuitive traffic light system to show what's ready to merge, what's in progress, and what's blocked.

Why Ampel?

  • 🎯 Stop Context-Switching - No more jumping between GitHub, GitLab, and Bitbucket. Everything in one dashboard.
  • ⚑ Instant Visibility - Traffic light status (🟒 Green = ready, 🟑 Yellow = in progress, πŸ”΄ Red = blocked) cuts through the noise.
  • πŸš€ Production-Ready - Battle-tested observability stack with Prometheus metrics, Grafana dashboards, and comprehensive monitoring.
  • πŸ”’ Self-Hosted & Secure - Deploy on your infrastructure with AES-256-GCM encrypted PAT storage. No data leaves your control.
  • 🀝 Team-First Design - Organizations, teams, bulk merge operations, and health scores for managing repos at scale.

Quick Start

With Docker (fastest path to value):

git clone https://github.com/pacphi/ampel.git
cd ampel && cp .env.example .env
cd docker && docker compose up -d

Open http://localhost:3000 and connect your first repository.

That's it. You'll have a fully functional PR dashboard with monitoring stack in under 5 minutes.

✨ Features

Core Capabilities

  • Unified Dashboard - GitHub, GitLab, and Bitbucket PRs in one view
  • Traffic Light Status - Visual health indicators with CI integration
  • Smart Filtering - Filter by provider, status, author, reviewer, labels, age
  • Repository Health Scores - Track team velocity and identify bottlenecks
  • Multitenancy - Organizations and teams with role-based access control
  • Multi-Language Support - 27 languages with RTL support (Arabic, Hebrew) and automatic detection

Advanced Features

  • Bulk Merge Operations - Merge multiple approved PRs with progress tracking
  • Team Organization - Group repos by team, customize dashboards
  • Bot PR Rules - Separate Dependabot/Renovate PRs with auto-merge support
  • Analytics & Reporting - PR cycle time, review turnaround, team velocity trends
  • Production Monitoring - Prometheus metrics, Grafana dashboards, distributed tracing
  • Language Persistence - User language preference saved to account and synced across devices

View complete feature matrix β†’

πŸ“š Documentation

πŸš€ Getting Started

First-time setup and quick wins:

✨ Features & Capabilities

Deep-dive into what Ampel can do:

🌍 Internationalization (i18n)

Multi-language support (27 languages with RTL support):

  • Multi-language UI with 27 supported languages
  • RTL (right-to-left) support for Arabic, Hebrew, Persian, and Urdu
  • Automatic locale detection from browser settings
  • Language switcher in user settings

Developer Tools:

  • ampel-i18n-builder - Translation management CLI
    • Extract translatable strings from TypeScript/React and Rust code
    • Refactor code to automatically replace hardcoded strings with i18n calls
    • Translate with 4-tier provider architecture (Systran β†’ DeepL β†’ Google β†’ OpenAI)
    • Generate TypeScript/Rust type definitions from translations
    • Validate translation coverage and consistency

πŸ—οΈ Architecture & Development

System design and contributing:

πŸ§ͺ Testing

Comprehensive testing documentation:

πŸ“Š Observability

Production monitoring and troubleshooting:

πŸš€ Deployment

Production deployment guides:

πŸ› οΈ Tech Stack

Built with a modern, performant stack designed for production workloads:

  • Backend: Rust 1.92+ with Axum (REST API), SeaORM (database), Apalis (background jobs)
  • Frontend: React 19 + TypeScript, Vite, TanStack Query, shadcn/ui, Tailwind CSS
  • Database: PostgreSQL 16 for data, Redis 7 for caching
  • Observability: Prometheus metrics, Grafana dashboards, OpenTelemetry tracing
  • Deployment: Docker, Fly.io, self-hosted options

See complete architecture β†’

πŸ“ˆ Project Status

Current Release: MVP Complete (87% of planned features)

What's Working Today:

  • βœ… Multi-provider PR aggregation (GitHub, GitLab, Bitbucket)
  • βœ… Traffic light status with CI integration
  • βœ… Team management and collaboration
  • βœ… Bulk merge operations with progress tracking
  • βœ… Health scoring and analytics
  • βœ… Production-ready observability stack

In Progress:

  • 🚧 Notification workers (Slack, email)
  • 🚧 Bot filtering frontend UI
  • 🚧 Export functionality (CSV/PDF)

View detailed implementation status β†’

Contributing

We welcome contributions! Whether you're fixing a bug, adding a feature, or improving documentation, your help makes Ampel better.

Get Started:

  1. Read the Contributing Guide
  2. Check the Development Guide for setup
  3. Browse open issues or propose a new feature
  4. Submit a pull request

License

MIT License β€” see LICENSE for details.


Built with 🚦 by the Ampel team

About

PR management dashboard and MCP server with support for Github, Gitlab, and Bitbucket

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

0