DevOps & Code

Connect Gitea

Reads repositories, pull requests, releases, and CI-workflow presence from a self-hosted (or gitea.com) Gitea instance — GitHub-style API — to feed Delivery Health (PR lead time) and Technical Debt (legacy-code + test debt).

What you'll need

A Gitea access token with read scopes (repository, user, organization). Defaults to the public gitea.com; for self-hosted Gitea provide the instance ROOT URL (not a repository or org URL).

Credential

Access token (read-only)

Requested scopes

read:repository, read:user, read:organization

Powers

Delivery Health, Technical Debt

What it pulls

Accessible repositories (active/stale by last update), pull requests (open + merged 30d + merge cycle time), releases, and CI-workflow presence (.gitea/workflows or .github/workflows) across a repo sample. Gitea exposes no vulnerability-scan API, so Security Readiness is omitted rather than faked.

What you’ll enter

The exact fields the connect form asks for — and where to find each value.

Gitea hostoptional
Leave blank for the public gitea.com. Self-hosted: your instance root like https://gitea.example.com — NOT a repository or org URL.
Access token (read-only)
Gitea → Settings → Applications → Generate New Token → select read scopes (repository, user, organization) → Generate → copy the value (shown once).

Step-by-step setup

  1. 1

    Open Applications settings

    Use the link above (gitea.com), or on self-hosted Gitea: your avatar → Settings → Applications → Manage Access Tokens.

  2. 2

    Generate a read-only token

    Under “Generate New Token”, name it “ShipReady Metrics”, then select READ scopes for repository, user, and organization (Gitea 1.20+ has granular scopes). Click Generate Token.

  3. 3

    Copy the token

    Copy the token value now — Gitea shows it only once.

  4. 4

    Set the host correctly

    For gitea.com, LEAVE the Gitea host field blank. For self-hosted, use the instance ROOT (e.g. https://gitea.example.com) — NOT a repository or org URL, which redirects to a web page and fails.

  5. 5

    Paste the token and connect

    Enter the token in Access token (read-only) and click Connect. We validate it live against the Gitea API, encrypt it at rest, and run the first sync.

Troubleshooting

“did not return JSON” / a host error.
Leave the host blank for the public gitea.com, or use your instance ROOT (https://gitea.example.com) — not a repository or org URL, which redirects to a web page and fails.
Token rejected (401).
Create the token under Settings → Applications → Generate New Token with read scopes (repository, user, organization), and paste the value — Gitea shows it only once.
Create a Gitea token → Connect in the app

Connect with a read-only token — validated live against the Gitea API, encrypted at rest, then synced. Token connect + sync implemented and mocked-fetch tested against the Gitea 1.x API; full ingestion runs once a token is provided.