sourceconditiontarget

✔

✔

✗

Description

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

source

Returns the branch matching versionfilter (typically the highest release/x.y).

condition

Tests that branch exists in the repository.

target

Not supported - a target fails with target not supported for the plugin Gitea branch. 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 branches over the git protocol instead, on any host, use gitbranch.

Parameters

NameTypeDescriptionRequired
branchstring

“branch” defines the name of the branch to check.

compatible:

  • condition

default: the output of the associated source.

example:

  • branch: main
ownerstring

“owner” defines the owner of the Gitea repository.

compatible:

  • source
  • condition

example:

  • owner: updatecli
repositorystring

“repository” defines the name of the Gitea repository for a specific owner.

compatible:

  • source
  • condition

example:

  • repository: updatecli
tokenstring

“token” defines the credential used to authenticate with the Gitea API.

remark:

  • a token is sensitive information. Do not set it directly in the manifest. Use an environment variable or a SOPS file instead.
  • {{ requiredEnv "GITEA_TOKEN" }} retrieves the token from the environment variable “GITEA_TOKEN”.
  • {{ .gitea.token }} retrieves the token from a SOPS file. See https://github.com/getsops/sops for more information about SOPS files.
  • in a “gitea/pullrequest” action, the value is inherited from the scm when unset.
urlstring

“url” defines the Gitea url to interact with.

remark:

  • “https://” is added when the url has no “https://” or “http://” prefix.
  • in a “gitea/pullrequest” action, the value is inherited from the scm when unset.

example:

  • url: gitea.com
  • url: https://gitea.example.com
usernamestring

“username” defines the username used to authenticate with the Gitea API.

remark:

  • in a “gitea/pullrequest” action, the value is inherited from the scm when unset.
versionfilterobject

“versionfilter” defines the version pattern and kind used to select a branch.

compatible:

  • source

default: kind: latest

remark:

  • accepted kinds include “latest”, “semver” and “regex”.

example:

  • versionfilter: kind: semver pattern: “~1.2”
    kindstring

“kind” defines the versioning scheme used to select a version.

default: latest

remark:

  • accepted values are “latest”, “semver”, “regex”, “regex/semver”, “time”, “regex/time”, “lex” and “pep440”.
  • “latest” returns the last version of the list.
  • “lex” sorts the versions lexicographically and returns the last one.
  • “pep440” follows https://peps.python.org/pep-0440/

example:

  • kind: semver
    patternstring

“pattern” defines the version pattern, according to “kind”.

default:

  • latest: “latest”
  • semver and pep440: “*”
  • regex: “.*”
  • time and regex/time: “2006-01-02”

remark:

  • for “latest”, “latest” returns the last version, any other value must match a version exactly.
  • for “semver” and “regex/semver”, it is a semantic versioning constraint.
  • for “pep440”, it is a pep440 version specifier.
  • for “regex”, it is a regular expression.
  • for “time” and “regex/time”, it is a Go date layout.
  • ignored by “lex”.

example:

  • pattern: ~1.2
  • pattern: “>=1.0.0 <2.0.0”
  • pattern: ^v\d+.\d+.\d+$
    regexstring

“regex” defines the regular expression extracting the version from each entry.

remark:

  • only used by the kinds “regex/semver” and “regex/time”.
  • the value of the first capture group is used as the version.

example:

  • regex: ^v(\d+.\d+.\d+)$
    replaceallobject

“replaceall” applies a regular expression replacement to each version before filtering.

remark:

  • only used by the kinds “regex”, “regex/semver” and “regex/time”.
  • the replacement runs before “pattern” or “regex” is evaluated.

example:

replaceall:
  pattern: "_"
  replacement: "."

turns “curl-8_15_0” into “curl-8.15.0”.

    strictboolean

“strict” enforces strict semantic versioning rules when parsing versions.

default: false

remark:

  • only used by the kinds “semver” and “regex/semver”.

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

branch

Condition only - the branch being checked.

versionfilter

Source only. 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: "Test Gitea branch"

sources:
  default:
    kind: "gitea/branch"
    spec:
      url: "try.gitea.io"
      owner: "olblak"
      repository: "updatecli-test"
      branch: main

conditions:
  default:
    name: Show condition usage without source input
    kind: "gitea/branch"
    disablesourceinput: true
    spec:
      url: "try.gitea.io"
      owner: "olblak"
      repository: "updatecli-test"
      branch: "main"

  sourcedefault:
    name: Show condition using branch name fetch from source input
    kind: "gitea/branch"
    sourceid: "default"
    spec:
      url: "try.gitea.io"
      owner: "olblak"
      repository: "updatecli-test"