---
title: "List GitHub Actions runs mirrored from GitHub"
method: GET
path: "/api/repos/{owner}/{repo}/ci/github/runs"
tags: ["CI"]
---

# List GitHub Actions runs mirrored from GitHub

`GET /api/repos/{owner}/{repo}/ci/github/runs`

## Request

- Base URL: `https://git.cafe`
- URL: `https://git.cafe/api/repos/{owner}/{repo}/ci/github/runs`
- Auth: one of:
  - none
  - API key in cookie `gc-session`
  - HTTP bearer
  - HTTP basic
  - HTTP token
  - OAuth 2
    - Authorization code: `/api/oauth/authorize`
    - Token URL: `/api/oauth/token` scopes: `repo:contents:read`

Returns cursor-paginated GitHub Actions workflow runs of the repository's mirrored GitHub repository, newest first, assembled from the check runs GitCafe syncs: one run per check suite, with the latest attempt of each job. Runs carry their jobs' results, not the workflow's name (the run endpoint reads it from GitHub). Check runs synced before GitCafe kept their check suite are not listed. A repository without a GitHub mirror has none. Public repositories allow anonymous reads; supplied credentials are validated and may expand access to private resources.

## Path parameters

- `owner` string, required
- `repo` string, required

## Query parameters

- `commit` string
- `after` string
- `limit` integer

## Response `200`

Response for status 200

- object
  - `items` object[], required
    - `id` string, required
    - `commitOid` string, required
    - `status` 'queued' | 'in_progress' | 'completed', required
    - `conclusion` string, nullable, required
    - `createdAt` string, date-time, required
    - `startedAt` string, date-time, nullable, required
    - `completedAt` string, date-time, nullable, required
    - `jobCount` integer, required
    - `jobNames` string[], required
    - `url` string, required
  - `next` string, nullable, required

## Other responses

- `400`: The request is invalid.
- `401`: Authentication is required, or the supplied credential is invalid.
- `403`: The credential does not permit this operation. A `code`, when present, names the refusal.
- `404`: The resource does not exist or is not visible to the caller.
- `409`: The request conflicts with the current state. A `code`, when present, names the refusal; `retryable` says whether the same request can succeed later, and `operationId` names the operation in the way.
- `429`: A rate limit is exhausted. Wait Retry-After seconds; the value is a hint, so back off on a repeat 429.
- `503`: A required service is temporarily unavailable; retry later.

---

[API](https://skmtc.dev/gitcafe/apis/git-cafe-api.md) - [All operations](https://skmtc.dev/gitcafe/apis/git-cafe-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gitcafe/apis/git-cafe-api/revisions/9fa233d2986d?raw)
