Gitea Release

kind: gitea/release

source condition target

Description

The Gitea "release" plugin allows to manipulate Gitea releases.

source

When used as a "source", the Gitea release plugin allows to get a Gitea Release tag according the version filter rule provided.

condition

When used as a "condition". the Gitea release plugin allows to test that specific Gitea Release tag exist.

target

When used a "target", the Gitea release plugin Using the gitea/release as a "target" ensures that a Gitea release exists.

Parameters

Name Type Description Required
commitish string [T] commitish defines the commit-ish such as main
description string [T] description defines if the new release description
draft boolean [T] draft defines if the release is a draft release
owner string [S][C][T] owner specifies the repository owner
prerelease boolean [T] prerelease defines if the release is a pre-release release
repository string [S][C][T] repository specifies the name of a repository for a specific owner
tag string [C][T] tag defines the Gitea release tag.
title string [T] title defines the Gitea release title.
token string

“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

url string “url” defines the Gitea url to interact with
username string “username” defines the username used to authenticate with Gitea API
versionfilter object [S] versionfilter provides parameters to specify version pattern and its type like regex, semver, or just latest.
    kind string specifies the version kind such as semver, regex, or latest
    pattern string specifies 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
    regex string specifies the regex pattern, used for regex/semver and regex/time. Output of the first capture group will be used.
    replaceall object replaceAll 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.
    strict boolean strict enforce strict versioning rule. Only used for semantic versioning at this time

Example

# updatecli.yaml
name: Show Gitea release usage

sources:
  default:
    name: Retrieve latest release matching versionfilter rule
    kind: gitea/release
    spec:
      url: "try.gitea.io"
      owner: olblak
      repository: updatecli-test
      versionfilter:
        kind: semver
        pattern: "~0"

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

targets:
  default:
    name: "Ensure release 0.0.1 from branch main exist"
    kind: gitea/release
    spec:
      url: "try.gitea.io"
      owner: olblak
      repository: updatecli-test
      commitish: main
      token: xxx
      tag: "0.0.1"
  sourcedefault:
    name: "Ensure release where tag is retrieved from source 'default' from branch main exist"
    kind: gitea/release
    sourceid: default
    spec:
      url: "try.gitea.io"
      owner: olblak
      repository: updatecli-test
      token: xxx
      commitish: main
Top