Skip to content

Expose `:release` yaml as steps via API

Sean Carroll requested to merge 199250-expose-release-yaml-as-steps-via-api into master

What does this MR do?

Satisfies part 2 of #199250 (closed):

Expose Release steps via the API

Currently the API exposes only the script and after_script steps, i.e. it is possible to called the releaser-cli like this:

{
    "steps": [
        {
            "name": "script",
            "script": [
                "job script",
                "release-cli create --name \"Release $CI_COMMIT_SHA\" --description \"Created using the release-cli $EXTRA_DESCRIPTION\" --tag-name \"release-$CI_COMMIT_SHA\" --ref \"$CI_COMMIT_SHA\""
            ] 
        }
    ]
}

Going forward we can name the steps, in this the step would be named release:

{
    "steps": [
        {
            "name": "script",
            "script": [...] 
        },
        {
            "name": "release",
            "script": [
                "release-cli create --name \"Release $CI_COMMIT_SHA\" --description \"Created using the release-cli $EXTRA_DESCRIPTION\" --tag-name \"release-$CI_COMMIT_SHA\" --ref \"$CI_COMMIT_SHA\""
            ]
        }
    ]
}

Please note:

  • the yaml has already been validated before the pipeline is executed
  • the :release node is currently behind a feature flag
  • runner has been extended with this MR
  • full description of the yaml is on the issue

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team

Part of #199250 (closed)

Edited by Sean Carroll

Merge request reports