Skip to content

fix: validate 'include' keywords in gitlab-ci.yml configuration files

Paul 🐻 requested to merge paulrbr/gitlab-ce:include-ci-yaml into master

What does this MR do?

During .gitlab-ci.yml configuration file validation there are two cases:

  1. either we are validating a file within a project context (a project and a sha is given in option parameters)
  2. either we are validating a file with no project context (as in the api POST /ci/lint)

In the first case, all include: keywords are replaced by the content of the included CI cnfiguration files.

In the second case, the include: configuration is kept untouched.

The current problem arises in the second case when one wants to validate a generic .gitlab-ci.yml configuration file with an include: keyword from the API. The following error will be raised by the API: "jobs:include config should be a hash".

This commit fixes the behavior by validating the include: keyword if its present to not parse it as a job definition.

What are the relevant issue numbers?

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/55863 & #52822 (closed)

Does this MR meet the acceptance criteria?

Merge request reports