Plugin-System: Abstrakte Interfaces für Ticket-Quellen und Git-Hosts #31

Closed
opened 2026-03-30 19:48:20 +00:00 by David · 1 comment
Collaborator

Beschreibung

Abstrakte Interfaces (Protocols) für TicketSource und GitHost definieren, sodass neben Odoo+GitLab auch Jira+GitHub, Linear+Bitbucket oder andere Kombinationen ohne Änderung der Pipeline-Kernlogik unterstützt werden können.

Hintergrund

Verschiedene Teams nutzen verschiedene Ticketing-Systeme und Git-Hosts. Ein Plugin-System macht Bruno adaptierbar für neue Umgebungen. Die aktuelle Architektur ist direkt an Odoo und GitLab gekoppelt. Abstrakte Interfaces ermöglichen es, neue Integrationen als separate Module zu entwickeln, ohne die Pipeline zu modifizieren.

Akzeptanzkriterien

  • TicketSource Protocol definiert: poll(), add_comment(), get_ticket()
  • GitHost Protocol definiert: create_mr(), get_mr_status(), get_diff(), push_branch()
  • Bestehende Odoo-Integration implementiert TicketSource
  • Bestehende GitLab-Integration implementiert GitHost
  • Pipeline nutzt nur die abstrakten Interfaces, nicht die konkreten Implementierungen
  • Neue Integrationen können über Config aktiviert werden
  • Dokumentation: Wie man ein neues Plugin schreibt

Technische Hinweise

  • Neue Datei: backend/interfaces.py — Protocol-Definitionen
  • Refactoring: backend/services/odoo_poller.py — Implementiert TicketSource
  • Refactoring: backend/services/gitlab_service.py — Implementiert GitHost
  • Refactoring: backend/services/pipeline.py — Dependency Injection der Interfaces
  • Erweitern: backend/config.pyTICKET_SOURCE=odoo, GIT_HOST=gitlab
  • Migration nötig: nein

Aufwand: M

## Beschreibung Abstrakte Interfaces (Protocols) für TicketSource und GitHost definieren, sodass neben Odoo+GitLab auch Jira+GitHub, Linear+Bitbucket oder andere Kombinationen ohne Änderung der Pipeline-Kernlogik unterstützt werden können. ## Hintergrund Verschiedene Teams nutzen verschiedene Ticketing-Systeme und Git-Hosts. Ein Plugin-System macht Bruno adaptierbar für neue Umgebungen. Die aktuelle Architektur ist direkt an Odoo und GitLab gekoppelt. Abstrakte Interfaces ermöglichen es, neue Integrationen als separate Module zu entwickeln, ohne die Pipeline zu modifizieren. ## Akzeptanzkriterien - [ ] `TicketSource` Protocol definiert: `poll()`, `add_comment()`, `get_ticket()` - [ ] `GitHost` Protocol definiert: `create_mr()`, `get_mr_status()`, `get_diff()`, `push_branch()` - [ ] Bestehende Odoo-Integration implementiert `TicketSource` - [ ] Bestehende GitLab-Integration implementiert `GitHost` - [ ] Pipeline nutzt nur die abstrakten Interfaces, nicht die konkreten Implementierungen - [ ] Neue Integrationen können über Config aktiviert werden - [ ] Dokumentation: Wie man ein neues Plugin schreibt ## Technische Hinweise - Neue Datei: `backend/interfaces.py` — Protocol-Definitionen - Refactoring: `backend/services/odoo_poller.py` — Implementiert `TicketSource` - Refactoring: `backend/services/gitlab_service.py` — Implementiert `GitHost` - Refactoring: `backend/services/pipeline.py` — Dependency Injection der Interfaces - Erweitern: `backend/config.py` — `TICKET_SOURCE=odoo`, `GIT_HOST=gitlab` - Migration nötig: nein ## Aufwand: M
Author
Collaborator

Superseded by #63 (Multi-Tenant Architektur). Abstrakte Interfaces für Ticket-Quellen und Git-Hosts werden durch die Multi-Tenant-Architektur mit Customer-spezifischen Instanzen abgedeckt.

Superseded by #63 (Multi-Tenant Architektur). Abstrakte Interfaces für Ticket-Quellen und Git-Hosts werden durch die Multi-Tenant-Architektur mit Customer-spezifischen Instanzen abgedeckt.
David closed this issue 2026-03-30 20:39:22 +00:00
Sign in to join this conversation.
No description provided.