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
scmidstringscmid specifies the scm configuration key associated to the current resource
specobjectSpec defines a specification for a "file" 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[pattern]
    replacerobjectReplacer specifies what value needs to be changed and how[from to]
    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.