feature/task-lib-expansion #3

Merged
muke merged 3 commits from feature/task-lib-expansion into main 2026-03-02 14:32:57 +01:00
Owner

Zusammenfassung

Konsolidiert Transaktionen-Handling und ergänzt einen Schema-Refresh für Maniphest.

Wesentliche Änderungen:

  • Neuer TransactionsBuilder + TransactionTypes zur sauberen Erzeugung von maniphest.edit-Transactions.
  • Anpassung in src/Tasks/AbstractTask.php: Transactions korrekt für die Phorge-API kodieren.
  • Refactor: ManiphestCreateTask nutzt nun den Builder.
  • Neuer Task ManiphestUpdateSchema und CLI-Wrapper cli/schema_refresh.php zum Erzeugen von
    var/schemas/maniphest.custom.json und var/schemas/maniphest.standard.json.
  • Kleine Entwickler-Hilfe tests/inspect_search.php (Header auf Deutsch).
  • Wiki-Dokumentation: neue Seite Schema-Refresh.md und Verlinkung in Tasks.md und _Sidebar.md.

Bezug zu Phorge

Fixes T1037
Fixes T1038

Art der Änderung

  • Task-Management (Maniphest API, Taskabfragen)
  • API-Integration / Phorge-Kommunikation
  • CLI / Automation
  • Tests / Dokumentation

Details / Kontext

T1038:

  • Einführung eines TransactionsBuilder mit Validierung (PHID-Format, erlaubte Transaction-Typen).
  • AbstractTask::callPhorgeApi() wurde angepasst, damit POST-Parameter für transactions im von Phorge
    erwarteten Format gesendet werden (unterstützt indexed transactions sowie JSON-Strings).
  • ManiphestCreateTask wurde refactored, um den Builder zu verwenden; Integrationstests wurden lokal im
    Container ausgeführt (dry-run + real create against staging API).

T1037:

  • Implementiert ManiphestUpdateSchema (scannt maniphest.search-Antworten nach custom.*-Schlüsseln,
    detektiert Typen heuristisch und schreibt atomar zwei Dateien)
    • var/schemas/maniphest.custom.json — erkannte Custom-Felder
    • var/schemas/maniphest.standard.json — stabile Liste der Standardfelder
  • CLI: cli/schema_refresh.php schreibt jetzt die beiden Dateien und entfernt legacy maniphest.json.

Sonstiges:

  • tests/inspect_search.php ist ein kleines Developer-Tool zur Inspektion der API-Antworten (dev-only).
  • Wiki: Schema-Refresh.md beschreibt die Nutzung und Cron/CI-Vorschlag.

Lokale Tests

  • Dry-Run und Integrationstest der ManiphestCreateTask im app-Container ausgeführt.
  • cli/schema_refresh.php maniphest im Container ausgeführt; Ergebnis: Erzeugung der beiden Schema-Dateien
    (53 Custom-Felder auf der Test-Instanz).

Anmerkungen für Reviewer

  • Änderungen betreffen API-Call-Encoding; bitte prüfen, ob das Verhalten in euren Phorge-Instanzen erwartet wird.
  • TransactionsBuilder sollte für alle weiteren Schreib-Tasks verwendet werden; Review auf Vollständigkeit
    der unterstützten Transaction-Typen empfohlen.
  • Keine Breaking-Changes für bestehende öffentliche APIs des Repos.
## Zusammenfassung Konsolidiert Transaktionen-Handling und ergänzt einen Schema-Refresh für Maniphest. Wesentliche Änderungen: - Neuer `TransactionsBuilder` + `TransactionTypes` zur sauberen Erzeugung von `maniphest.edit`-Transactions. - Anpassung in `src/Tasks/AbstractTask.php`: Transactions korrekt für die Phorge-API kodieren. - Refactor: `ManiphestCreateTask` nutzt nun den Builder. - Neuer Task `ManiphestUpdateSchema` und CLI-Wrapper `cli/schema_refresh.php` zum Erzeugen von `var/schemas/maniphest.custom.json` und `var/schemas/maniphest.standard.json`. - Kleine Entwickler-Hilfe `tests/inspect_search.php` (Header auf Deutsch). - Wiki-Dokumentation: neue Seite `Schema-Refresh.md` und Verlinkung in `Tasks.md` und `_Sidebar.md`. ## Bezug zu Phorge Fixes T1037 Fixes T1038 ## Art der Änderung - [x] Task-Management (Maniphest API, Taskabfragen) - [x] API-Integration / Phorge-Kommunikation - [x] CLI / Automation - [x] Tests / Dokumentation ## Details / Kontext T1038: - Einführung eines `TransactionsBuilder` mit Validierung (PHID-Format, erlaubte Transaction-Typen). - `AbstractTask::callPhorgeApi()` wurde angepasst, damit POST-Parameter für `transactions` im von Phorge erwarteten Format gesendet werden (unterstützt indexed transactions sowie JSON-Strings). - `ManiphestCreateTask` wurde refactored, um den Builder zu verwenden; Integrationstests wurden lokal im Container ausgeführt (dry-run + real create against staging API). T1037: - Implementiert `ManiphestUpdateSchema` (scannt `maniphest.search`-Antworten nach `custom.*`-Schlüsseln, detektiert Typen heuristisch und schreibt atomar zwei Dateien) - `var/schemas/maniphest.custom.json` — erkannte Custom-Felder - `var/schemas/maniphest.standard.json` — stabile Liste der Standardfelder - CLI: `cli/schema_refresh.php` schreibt jetzt die beiden Dateien und entfernt legacy `maniphest.json`. Sonstiges: - `tests/inspect_search.php` ist ein kleines Developer-Tool zur Inspektion der API-Antworten (dev-only). - Wiki: `Schema-Refresh.md` beschreibt die Nutzung und Cron/CI-Vorschlag. ## Lokale Tests - Dry-Run und Integrationstest der `ManiphestCreateTask` im `app`-Container ausgeführt. - `cli/schema_refresh.php maniphest` im Container ausgeführt; Ergebnis: Erzeugung der beiden Schema-Dateien (53 Custom-Felder auf der Test-Instanz). ## Anmerkungen für Reviewer - Änderungen betreffen API-Call-Encoding; bitte prüfen, ob das Verhalten in euren Phorge-Instanzen erwartet wird. - `TransactionsBuilder` sollte für alle weiteren Schreib-Tasks verwendet werden; Review auf Vollständigkeit der unterstützten Transaction-Typen empfohlen. - Keine Breaking-Changes für bestehende öffentliche APIs des Repos.
muke self-assigned this 2026-03-02 14:32:20 +01:00
muke merged commit 84944c7771 into main 2026-03-02 14:32:57 +01:00
muke deleted branch feature/task-lib-expansion 2026-03-02 14:32:57 +01:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
automation/phorgerunner!3
No description provided.