Trello
Trello ist der kartenbasierte Tracker von Atlassian. Karten werden über eine kurze ID angesprochen (z. B. https://trello.com/c/aBc12XyZ, wobei aBc12XyZ der Kurzlink der Karte ist) oder über die numerische ID aus Board und Karte. Weil Trello nur ein lockeres Projektmodell hat, sieht die Integration anders aus als bei Jira: Es gibt keine „Projektschlüssel“ wie JIRA-123, Karten sind einfach IDs.
Forgejo-Seite: externer Issue-Tracker
Repository → Einstellungen → Einheiten → Issues → Externen Issue-Tracker verwenden.
Zwei Muster, je nachdem, ob dein Team auf Trello-Karten per Kurzlink oder per fortlaufender Nummer pro Board verweist:
Muster A: Verweise per Kurzlink (empfohlen)
| Feld | Wert |
|---|---|
| External issue tracker URL | https://trello.com/c/{index} |
| External issue tracker URL format | https://trello.com/c/{index} |
| External issue tracker number format | Regexp |
| External issue tracker number format regexp | T#([a-zA-Z0-9]{8}) |
Konvention für Commit-Nachrichten: T#aBc12XyZ (das Kurzlink-Suffix aus der URL der Trello-Karte).
Muster B: fortlaufende numerische Verweise
Verwendet dein Team die numerische Form #<n> (die Trello pro Board ebenfalls unterstützt), wähle ein Präfix pro Board, um Kollisionen zu vermeiden, wenn mehrere Boards auf ein Repository verweisen: TRELLO-<n>. Muster:
| Feld | Wert |
|---|---|
| External issue tracker URL | https://trello.com/b/<your-board-id>/<your-board-slug> |
| External issue tracker URL format | (Trello bietet keine direkten URLs für numerische IDs – öffne stattdessen das Board und suche mit ⌘F nach der Nummer) |
| External issue tracker number format | Regexp |
| External issue tracker number format regexp | TRELLO-([0-9]+) |
Muster A ist angenehmer, weil jede Karte eine stabile Kurzlink-URL hat.
Empfohlenes Format für Commit-Nachrichten
chore(deps): bump alpine 3.21 → 3.22
T#aBc12XyZDer Kurzlink bleibt stabil, wenn eine Karte umbenannt oder in eine andere Liste verschoben wird; numerische IDs nicht (sie werden neu vergeben, wenn archivierte Karten zurückkehren).
Tracker-Seite: Trello-Power-Up-Webhook (optional)
Eingehende Webhooks richtest du in Trello pro Board ein:
- Trello-Board → Show menu → Power-Ups → nach „Webhooks“ suchen oder das Custom Webhooks Power-Up verwenden.
- Füge einen Webhook mit einer URL hinzu, die auf ein Relay zeigt, das du selbst betreibst (Trello erwartet ein bestimmtes Anfrageformat, das
model+actionauf Kartenereignisse abbildet; das Format des ausgehenden Webhooks von fremforge passt nicht direkt dazu). - Dasselbe Muster mit einem Relay dazwischen wie bei Linear: 30 Zeilen Relay-Code übersetzen
pull_request.openedvon Forgejo in den API-AufrufattachToCardvon Trello, damit die Karte den verknüpften PR anzeigt.
Willst du kein Relay betreiben, nutze einfach das einseitige Muster mit anklickbarem Link (Forgejo → Trello), lass den eingehenden Webhook weg und nimm in Kauf, dass Trello-Karten keine „verknüpften PRs“ anzeigen.
Folgen für Unterauftragsverarbeiter
Die Steuerungsebene von Trello liegt in AWS US-east-1 (von Atlassian betrieben, dieselbe Ausrichtung wie Jira Cloud). Wenn du fremforge mit Trello verbindest:
- Commit-Metadaten und die E-Mail-Adresse der Autorin oder des Autors fließen in die Cloud von Atlassian.
- Nimm Atlassian als Unterauftragsverarbeiter in deinen AVV und dein Verzeichnis der Unterauftragsverarbeiter auf (ein Eintrag deckt Jira Cloud, Trello und Confluence Cloud ab – sie teilen sich die Datenresidenz).
- EU-Datenresidenz ist bei Atlassian Cloud nur in Premium-Tarifen und nur auf Wunsch verfügbar; prüfe, ob dein Trello-Workspace einen Premium-Tarif hat, wenn ausschließlich EU-Hosting gefordert ist.
Was das nicht leistet
- fremforge kennt keine Trello-Boards oder -Listen und behandelt jede Karte gleich. Soll ein PR eine Karte von „In Progress“ nach „Done“ verschieben, richte auf der Trello-Seite eine Automatisierung (Butler-Regel) ein, die den Relay-Webhook auswertet.
- Commits legen keine Karten an: Ein Verweis auf einen nicht vorhandenen Kurzlink erzeugt einen toten Link, keine neue Karte.
- Um eine Karte mit mehreren Repositorys zu verknüpfen, musst du in jedem Repository einzeln auf denselben Kurzlink verweisen.