Merge pull request 'Neues Label "help wanted" fuer QA-Spalte im Codeberg-Sync' (#50) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/50
This commit is contained in:
commit
a5a5df0ecd
5 changed files with 18 additions and 16 deletions
12
API.md
12
API.md
|
|
@ -176,10 +176,10 @@ curl -X POST "$MONITOR_API_BASE/agents/$ID/activity" \
|
|||
|
||||
Spalten (F3): `backlog`, `bereit`, `in_arbeit`, `qa`, `testing`, `fertig`, `done`.
|
||||
|
||||
- `backlog`, `bereit`, `in_arbeit`, `testing` und `done` werden regelmaessig aus
|
||||
- `backlog`, `bereit`, `in_arbeit`, `qa`, `testing` und `done` werden regelmaessig aus
|
||||
Codeberg-Issues aus mehreren konfigurierten Projekten befuellt (siehe
|
||||
[Codeberg-Sync](#codeberg-sync-backlogdone)); `qa` und `fertig` sind fuer zukuenftige
|
||||
Labels reserviert und ergeben sich ausschliesslich aus Agenten-Meldungen (F4).
|
||||
[Codeberg-Sync](#codeberg-sync-backlogdone)); `fertig` ist fuer ein zukuenftiges Label
|
||||
reserviert und ergibt sich ausschliesslich aus Agenten-Meldungen (F4).
|
||||
- Ticket-Typ (statt Prioritaet) wird bei Codeberg-Tickets aus dem ersten Issue-Label
|
||||
uebernommen, die Farbe dagegen fest aus dem Quell-Projekt (F4/F26) - so bleiben Tickets aus
|
||||
unterschiedlichen Codeberg-Projekten auf einen Blick unterscheidbar, unabhaengig davon,
|
||||
|
|
@ -349,10 +349,10 @@ Codeberg-Projekten (siehe [Projekte](#projekte-codeberg-sync-konfigurieren)) und
|
|||
je Projekt ueber `repo` + `external_ref` (= Issue-Nummer) mit den Tickets ab:
|
||||
|
||||
- Offene Issues → Spalte je nach Label: `wip` → `in_arbeit`, sonst `testing` → `testing`,
|
||||
sonst `automate` → `bereit`, sonst `backlog`.
|
||||
sonst `help wanted` → `qa`, sonst `automate` → `bereit`, sonst `backlog`.
|
||||
- Geschlossene Issues → Spalte `done`.
|
||||
- Nur falls das Ticket noch in einer der Sync-Spalten (`backlog`, `bereit`, `in_arbeit`,
|
||||
`testing`, `done`) ist - auf `qa`/`fertig` manuell verschobene Tickets werden nicht
|
||||
- Nur falls das Ticket noch in einer der Sync-Spalten (`backlog`, `bereit`, `in_arbeit`, `qa`,
|
||||
`testing`, `done`) ist - auf `fertig` manuell verschobene Tickets werden nicht
|
||||
zurueckgesetzt.
|
||||
- Ticket-Typ kommt vom ersten Issue-Label, die Farbe fest vom Projekt (siehe oben).
|
||||
|
||||
|
|
|
|||
|
|
@ -14,12 +14,12 @@ final class TicketRepository
|
|||
public const COLUMNS = ['backlog', 'bereit', 'in_arbeit', 'qa', 'testing', 'fertig', 'done'];
|
||||
|
||||
/**
|
||||
* Spalten, die der Codeberg-Sync anhand von Issue-Status/Labels pflegt (F14). "qa" und
|
||||
* "fertig" sind fuer zukuenftige Labels reserviert und bleiben rein manuell.
|
||||
* Spalten, die der Codeberg-Sync anhand von Issue-Status/Labels pflegt (F14). "fertig"
|
||||
* ist fuer ein zukuenftiges Label reserviert und bleibt rein manuell.
|
||||
*
|
||||
* @var string[]
|
||||
*/
|
||||
private const SYNC_MANAGED_COLUMNS = ['backlog', 'bereit', 'in_arbeit', 'testing', 'done'];
|
||||
private const SYNC_MANAGED_COLUMNS = ['backlog', 'bereit', 'in_arbeit', 'qa', 'testing', 'done'];
|
||||
|
||||
public function __construct(private readonly Database $db)
|
||||
{
|
||||
|
|
@ -155,7 +155,7 @@ final class TicketRepository
|
|||
return $this->create($data + ['source' => 'codeberg']);
|
||||
}
|
||||
|
||||
// Manuell auf eine nicht vom Sync verwaltete Spalte bewegte Tickets (z. B. qa/fertig)
|
||||
// Manuell auf eine nicht vom Sync verwaltete Spalte bewegte Tickets (z. B. fertig)
|
||||
// werden vom periodischen Codeberg-Sync nicht zurueckgesetzt.
|
||||
if (!in_array($existing['column_name'], self::SYNC_MANAGED_COLUMNS, true)) {
|
||||
return $existing;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ use Monitor\Api\Repository\TicketRepository;
|
|||
* F4/F26: Liest offene und geschlossene Issues aus mehreren konfigurierten Codeberg-Projekten
|
||||
* (RepoConfigRepository, Issue #27 vormals Config::codebergRepos()) und legt daraus Tickets
|
||||
* an bzw. aktualisiert sie. Offene Issues landen (falls noch nicht vorhanden bzw. noch nicht
|
||||
* manuell bewegt) je nach Label in Backlog, Bereit, In Arbeit oder Testing, geschlossene in
|
||||
* manuell bewegt) je nach Label in Backlog, Bereit, In Arbeit, QA oder Testing, geschlossene in
|
||||
* Done. Der Ticket-Typ (Badge-Text) kommt vom ersten Codeberg-Label, die Ticket-Farbe dagegen
|
||||
* fest vom Quell-Projekt (Issue #26: "unterschiedliche Codeberg-Projekte sollen an fest
|
||||
* zugeordneten Farben erkennbar sein"), nicht mehr von der Label-Farbe.
|
||||
|
|
@ -25,6 +25,7 @@ final class CodebergSyncService
|
|||
private const LABEL_TO_COLUMN = [
|
||||
'wip' => 'in_arbeit',
|
||||
'testing' => 'testing',
|
||||
'help wanted' => 'qa',
|
||||
'automate' => 'bereit',
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ final class TicketRepositoryTest extends TestCase
|
|||
'column' => 'backlog',
|
||||
]);
|
||||
$ticket = $this->repository->findByExternalRef('42');
|
||||
$this->repository->update((int) $ticket['id'], ['column' => 'qa']);
|
||||
$this->repository->update((int) $ticket['id'], ['column' => 'fertig']);
|
||||
|
||||
$result = $this->repository->upsertFromCodeberg([
|
||||
'external_ref' => '42',
|
||||
|
|
@ -130,7 +130,7 @@ final class TicketRepositoryTest extends TestCase
|
|||
'column' => 'backlog',
|
||||
]);
|
||||
|
||||
self::assertSame('qa', $result['column_name']);
|
||||
self::assertSame('fertig', $result['column_name']);
|
||||
}
|
||||
|
||||
public function testUpsertFromCodebergMovesTicketBetweenSyncManagedColumns(): void
|
||||
|
|
|
|||
|
|
@ -148,12 +148,12 @@ final class CodebergSyncServiceTest extends TestCase
|
|||
|
||||
$service->sync();
|
||||
$ticket = $tickets->findByExternalRef('1', self::MONITOR_SLUG);
|
||||
$tickets->update((int) $ticket['id'], ['column' => 'qa']);
|
||||
$tickets->update((int) $ticket['id'], ['column' => 'fertig']);
|
||||
|
||||
$service->sync();
|
||||
|
||||
$stillQa = $tickets->findByExternalRef('1', self::MONITOR_SLUG);
|
||||
self::assertSame('qa', $stillQa['column_name']);
|
||||
$stillFertig = $tickets->findByExternalRef('1', self::MONITOR_SLUG);
|
||||
self::assertSame('fertig', $stillFertig['column_name']);
|
||||
}
|
||||
|
||||
/** @return array<int, array{0: string, 1: string}> */
|
||||
|
|
@ -163,6 +163,7 @@ final class CodebergSyncServiceTest extends TestCase
|
|||
'automate -> bereit' => ['automate', 'bereit'],
|
||||
'wip -> in_arbeit' => ['wip', 'in_arbeit'],
|
||||
'testing -> testing' => ['testing', 'testing'],
|
||||
'help wanted -> qa' => ['help wanted', 'qa'],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue