feat: add gitealike Actions CI parity#277
Conversation
|
This change is part of the following stack:
Change managed by git-spice. |
roborev: Combined Review (
|
Merge Forgejo and Gitea Actions workflow runs into provider CI checks without duplicating commit statuses. Gitea Actions are gated to servers with the pinned SDK's 1.26+ workflow run API, leaving older hosts status-only.
Keep action runs with the same title as commit statuses when they point at distinct CI URLs, and normalize unsupported action conclusions without falling back through generic state mapping.
Add full-stack coverage for Gitea Actions CI ingestion so statuses and action runs are normalized, deduplicated by URL, persisted in SQLite, and returned through the pull detail API.
f1a86e9 to
f1cc7a2
Compare
roborev: Combined Review (
|
Collapse Forgejo and Gitea action runs by workflow identity before CI aggregation so older failed reruns do not keep a pull request failed after a newer successful run.
roborev: Combined Review (
|
Render the locked PR state from the bool-backed API model only for providers whose frontend capability helper reports lock-state support. Add e2e coverage so the detail view consumes IsLocked instead of only carrying the field through the data model.
roborev: Combined Review (
|
Use action run numbers and created/updated timestamps when collapsing Gitea-like workflow runs so a queued rerun can supersede an older completed run for the same workflow. This prevents stale failed checks from remaining current after a rerun starts.
Enable the Gitea Actions reader without permanently disabling it from the startup version check. Known older-server version errors now fall back to commit statuses, while transient action/version read errors remain retryable on later syncs.
roborev: Combined Review (
|
roborev: Combined Review (
|
Merge Forgejo and Gitea Actions workflow runs into provider CI checks without duplicating commit statuses. Gitea Actions are gated to servers with the pinned SDK's 1.26+ workflow run API, leaving older hosts status-only.