GitHub Issues#
OakCore hostet keine Tickets, ermöglicht aber die Verknüpfung von Spezifikationsknoten (Requirements, Tests, Risks) mit GitHub Issues. OakCore hält einen schreibgeschützten Snapshot und setzt einen Backlink-Kommentar auf GitHub.
Connection-Setup (PAT, Owner/Repo, Webhooks) ist mit anderen GitHub-Familien geteilt — siehe GitHub-Repository-Verbindung.
Issue an einen Knoten binden#
- Knoten mit Issue-Binding öffnen (Requirement, Test, Risk).
- Sidebar Info → Bindings → Issues.
- Connection wählen, Issue-Referenz einfügen, verknüpfen.
Erfordert eine GitHub-Repository-Verbindung für das Ziel-Repo.
Akzeptierte Referenzen:
| Format | Beispiel |
|---|---|
| Issue-URL | https://github.com/acme/widgets/issues/42 |
| Nummer | 42 oder #42 |
Pull-Request-URLs gehören in GitHub Pull Requests.
Nach dem Verknüpfen:
- Snapshot ziehen.
- Backlink-Kommentar auf dem Issue setzen oder aktualisieren — ein verwalteter Kommentar pro Issue, unabhängig vom Status (offen/geschlossen).
Landing-URL im Kommentar:
{oakcore-url}/integration-issue?projectId={project_id}&artifactId={artifact_id}
Weitere Knoten: Verknüpfst du denselben GitHub-Issue mit einem weiteren OakCore-Knoten, aktualisiert OakCore denselben Kommentar mit allen verknüpften Knoten.
Refresh: Manueller Refresh schreibt den Backlink ebenfalls neu.
Beim Lösen des letzten Knotens entfernt OakCore den Kommentar. Bleiben andere Knoten verknüpft, listet der Kommentar nur noch die verbleibenden Anker.
Hinweis — gesperrte Issues: Auf gesperrten GitHub Issues können keine neuen Kommentare gesetzt werden. OakCore legt das Binding an und hält den Snapshot, aber der Backlink-Kommentar scheitert, bis das Issue entsperrt ist. Nach dem Entsperren Refresh ausführen, um den Backlink erneut zu schreiben.
Webhook-Events#
Am gemeinsamen GitHub-Webhook nur Issues abonnieren (nicht Issue comments).
Fehlerbehebung#
| Symptom | Prüfen |
|---|---|
| Als Pull Request abgelehnt | PR-Binding oder /pull/-URL verwenden |
| Snapshot pending | Test, Hintergrund-Sync |
| Kein Backlink | Issues → Read and write; Issue ggf. gesperrt (siehe Hinweis oben) |