Gitea

Works with any self-hosted Gitea (and Forgejo, API-compatible).

Actions: commit_status · pr_comment · issue_comment (both support mode: upsert) · label (add/remove — missing labels are created with a default color).

Authentication

Access token, or OAuth2 client credentials:

scm:
  gitea:
    - name: gitea
      enabled: true
      base_url: https://gitea.company.example.com
      auth:
        secretRef:
          name: gitea-token              # Secret key: token
        # or:
        # oauth2:
        #   client_id:
        #     secretRef:
        #       name: gitea-oauth2
        #   client_secret:
        #     secretRef:
        #       name: gitea-oauth2
        #   token_url: https://gitea.company.example.com/login/oauth/access_token
        #   grant_type: client_credentials   # default; refresh_token also supported

grant_type defaults to client_credentials; refresh_token is also supported. authorization_code is not (the relay exposes no redirect endpoint).

Required annotations

scm.provider = instance name; scm.repo-owner + scm.repo-name; scm.commit-sha for statuses; scm.pr-number / scm.issue-number for comments and labels.

State mapping

pending/running → pending, success → success, failure → failure, error/canceled → error.

Comment templates

PR/issue comment bodies are optional templates: inline string, configmapRef: {name, key}, or omitted for the built-in "Build <State> for <RunName>" body. The chart ships gitea-pr-comment.tmpl and gitea-issue-comment.tmpl as opt-in configmapRef examples. See Actions → Comment templates are optional.

Notes