sourceconditiontarget

Description

The gitea/tag resource queries the tags of a repository hosted on Gitea, through the Gitea API rather than over the git protocol.

source

Returns the tag matching versionfilter.

condition

Tests that tag exists in the repository.

target

Not supported - a target fails with target not supported for the plugin Gitea Tags. Say so on the issue tracker if you would use one.

Note
An scm attached to a condition is ignored, with a warning. The lookup always goes to the Gitea API.
Tip
To work with tags over the git protocol instead, on any host (and to create one), use gittag.

Parameters

NameTypeDescriptionRequired
ownerstring[S][C] Owner specifies repository owner
repositorystring[S][C] Repository specifies the name of a repository for a specific owner
tagstring[S] Tag defines the Gitea tag .
tokenstring

“token” specifies the credential used to authenticate with Gitea API

remark: A token is a sensitive information, it’s recommended to not set this value directly in the configuration file but to use an environment variable or a SOPS file.

The value can be set to {{ requiredEnv "GITEA_TOKEN"}} to retrieve the token from the environment variable GITHUB_TOKEN or {{ .gitea.token }} to retrieve the token from a SOPS file.

For more information, about a SOPS file, please refer to the following documentation: https://github.com/getsops/sops

urlstring“url” defines the Gitea url to interact with
usernamestring“username” defines the username used to authenticate with Gitea API
versionfilterobject[S][C] VersionFilter provides parameters to specify version pattern and its type like regex, semver, or just latest.
    kindstringspecifies the version kind such as semver, regex, or latest
    patternstringspecifies the version pattern according the version kind for semver, it is a semver constraint for regex, it is a regex pattern for time, it is a date format
    regexstringspecifies the regex pattern, used for regex/semver and regex/time. Output of the first capture group will be used.
    replaceallobjectreplaceAll applies a regex replacement to version strings before filtering. This is useful for transforming versions (e.g., curl-8_15_0 to curl-8.15.0) before regex extraction.
    strictbooleanstrict enforce strict versioning rule. Only used for semantic versioning at this time

owner and repository are mandatory. url points at your Gitea instance, e.g. try.gitea.io. There is no default.

tag

Condition only - the tag being checked.

versionfilter

Source only. kind: semver is the usual choice for release tags. See the "Version Filtering" page.

Authentication

token authenticates against the Gitea API. It is sensitive, so read it from the environment or a SOPS file rather than writing it into the manifest:

spec:
  url: try.gitea.io
  token: '{{ requiredEnv "GITEA_TOKEN" }}'
  owner: updatecli
  repository: updatecli

Reading a public repository works without any credential.

Example

# updatecli.yaml
name: "Show Gitea tag usage"

sources:
  default:
    name: "Get tag using versionfilter from a Gitea repository"
    kind: "gitea/tag"
    spec:
      url: "try.gitea.io"
      owner: "olblak"
      repository: "updatecli-test"
      versionfilter:
        kind: "semver"
        pattern: "~0.0"

  latest:
    name: "Get latest tag tag from a Gitea repository"
    kind: "gitea/tag"
    spec:
      url: "try.gitea.io"
      owner: "olblak"
      repository: "updatecli-test"

conditions:
  default:
    name: "Test tag '0.0.2' exist on the Gitea repository"
    kind: "gitea/tag"
    disablesourceinput: true
    spec:
      url: "try.gitea.io"
      owner: "olblak"
      repository: "updatecli-test"
      tag: "0.0.2"

  sourcedefault:
    name: "Test that the tag retrieved from source 'default' exist on the Gitea repository"
    kind: "gitea/tag"
    sourceid: "default"
    spec:
      url: "try.gitea.io"
      owner: "olblak"
      repository: "updatecli-test"

  latest:
    name: "Test that the tag retrieved from source 'latest' exist on the Gitea repository"
    kind: "gitea/tag"
    sourceid: "latest"
    spec:
      url: "try.gitea.io"
      owner: "olblak"
      repository: "updatecli-test"