Source define the 'what' you want to update


The "source" stage retrieve an information from a third "resource" like a file, an api and then inject that information in later stages.


dependsonarraydependson specifies which resources must be executed before the current one
namestringname specifies the resource name
scmobjectDeprecated field on version [1.17.0]
scmidstringscmid specifies the scm configuration key associated to the current resource
specobjectSpec defines a specification for a "dockerimage" resource parsed from an updatecli manifest file
transformersarraytransformers defines how the default input value need to be transformed
    addprefixstringAddPrefix adds a prefix to the transformer input value
    addsuffixstringAddSuffix adds a suffix to the transformer input value
    findstringFind searches for a specific value if it exists and return false if it doesn't
    findsubmatchobjectFind searches for a specific value if it exists then return the value using regular expression
    replacerobjectReplacer specifies what value needs to be changed and how
    replacersarrayReplacers specifies a list of replacer instruction
    semverincstringSemvVerInc specifies a comma separated list semantic versioning component that needs to be upgraded.
    trimprefixstringTrimPrefix removes a prefix to the transformer input value
    trimsuffixstringTrimSuffix removes the suffix from the transformer input value


    name: Get latest Venom release
    kind: githubRelease
      owner: ovh
      repository: venom
      # Value from environment variable '$UPDATECLI_GITHUB_TOKEN'
      token: '{{ requiredEnv "UPDATECLI_GITHUB_TOKEN" }}'
      # Value from environment variable '$UPDATECLI_GITHUB_ACTOR'
      username: '{{ requiredEnv "UPDATECLI_GITHUB_ACTOR" }}'
        kind: semver
      - addPrefix: "v"

In this example we are looking for the latest release tag from which is 'jenkins-2.75'. Unfortunately it contains the prefix "jenkins" which is useless for later stages, so we replace 'jenkins-' by nothing so the output of the source becomes "jenkins/jenkins:2.275-jdk" which is a valid docker image that can now be used in the later stages.