List workflow runs
list_workflow_runsList a repository's CI workflow runs newest-first, filterable by commit SHA, branch, status, event, or workflow file, to check whether a specific commit or push passed.
Instructions
List a repository's Actions (CI) workflow runs (owner/repo), on Forgejo or Gitea. Newest first, 30 to a page unless page/limit say otherwise; total is the full count, so page on for more. Filter by head_sha (best for 'did this commit pass?' — the full 40-character SHA; an abbreviated one is refused, since both forges match it exactly and would silently find nothing), ref, status, event, or workflow_id (a file name like ci.yml). The two forges model a run almost entirely differently — Gitea copied GitHub's vocabulary, Forgejo kept its own — so this output is a translation, not either forge's raw shape: run_number, title, workflow, ref, commit_sha and created/started/stopped each come from a differently-named key on each forge. Read the outcome from status (success/failure/running/…); on Gitea that is its conclusion, since Gitea's own status reports only the phase (queued/in_progress/completed). Do not infer either forge's wire format from these field names. A 404 means either that Actions is disabled on the repo, or — on Gitea only, and only when workflow_id is set — that no such workflow file exists; Forgejo returns an empty list for an unknown workflow_id instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Filter by branch or tag ref, e.g. `refs/heads/main`. | |
| page | No | 1-based page number. Defaults to 1, the most recent runs. | |
| repo | Yes | Repository name. | |
| event | No | Filter by triggering event, e.g. `push`, `pull_request`, `workflow_dispatch`. | |
| limit | No | Results per page. Defaults to 30; Codeberg caps it at 50. | |
| owner | Yes | Repository owner. | |
| status | No | Filter by run status, e.g. `success`, `failure`, `running`, `waiting`. | |
| head_sha | No | Filter by head commit SHA — the most reliable way to find the run for a given push. Must be the full 40-character SHA (64 for SHA-256): the match is exact, so an abbreviated one would find nothing, and is refused instead. | |
| workflow_id | No | Filter by workflow file name, e.g. `ci.yml`. |