go-latestver/docs/config.md
2022-08-07 16:15:36 +02:00

4.5 KiB

Configuration file format

---

catalog:

  - name: alpine
    tag: stable

    fetcher: html
    fetcher_config:
      url: https://alpinelinux.org/downloads/
      xpath: '//div[@class="l-box"]/p/strong'

    links:
      - icon_class: 'fas fa-globe'
        name: 'Website'
        url: 'https://alpinelinux.org'

    version_constraint:
      allow_downgrade: false
      allow_prerelease: false
      type: semver

check_interval: 1h

...

Each catalog entry contains a name and a tag representing the entry. You can choose those freely but they should be URL-safe. Some examples I'm using are: alpine:stable, google-chrome:dev, google-chrome:stable, factorio:latest, …

Additionally you will configure a fetcher with its corresponding fetcher_config for the catalog entry. In the example above the html fetcher is used with two attributes configured. The attributes for each fetcher can be found below.

You can provide your own links for each catalog entry which will be added to or override the links returned from the fetcher. If you provide the same name as the fetcher uses the link of the fetcher will be overridden. The icon_class should consist of fas or fab and an icon (for example fa-globe). You can use all solid (fas) or breand (fab) icons within Font Awesome v5 Free.

For the version_constraints you must specify a type to parse the version returned by the fetcher (currently semver and numeric_dot (104.0.5112.79) are supported) and then can allow downgrades and pre-releases in the version. If no constraint is present, versions are neither parsed nor checked for downgrade / pre-release. If only the type is specified, downgrades and pre-releases are forbidden.

Available Fetchers

Fetcher: atlassian

Fetches latest version of an Atlassian product

Attribute Req. Type Default Value Description
product string Lowercase name of the product to fetch (e.g. confluence, crowd, jira-software, ...)
edition string Filter down the versions according to its edition (e.g. "Enterprise" or "Standard" for Confluence)
search string TAR.GZ What to search in the download description: default is to search for the standalone .tar.gz file

Fetcher: git_tag

Reads git tags (annotated and leightweight) from a remote repository and returns the newest one

Attribute Req. Type Default Value Description
remote string Repository remote to fetch the tags from (should accept everything you can use in git remote set-url command)

Fetcher: github_release

Fetches the latest release from Github for a given repository not marked as pre-release

Attribute Req. Type Default Value Description
repository string Repository to fetch in form owner/repo

Fetcher: html

Downloads website, selects text-node using XPath and optionally applies custom regular expression

Attribute Req. Type Default Value Description
url string URL to fetch the HTML from
xpath string XPath expression leading to the text-node containing the version
regex string (v?(?:[0-9]+\.?){2,}) Regular expression to apply to the text from the XPath expression

Fetcher: json

Fetches a JSON / JSONP file from remote source and traverses it using XPath expression

Attribute Req. Type Default Value Description
url string URL to fetch the HTML from
xpath string XPath expression leading to the text-node containing the version
jsonp boolean false File contains JSONP function, strip it to get the raw JSON

Fetcher: regex

Fetches URL and applies a regular expression to extract a version from it

Attribute Req. Type Default Value Description
regex string Regular expression (RE2) to apply to the text fetched from the URL. The regex MUST have exactly one submatch containing the version.
url string URL to fetch the content from