Ci include is not used in the root entry

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

  • Work on this issue
  • Close this issue

The include entry from Gitlab::Ci::Config::Entry::Root doesn't seem to be used during the validation step because it is removed when the YAML is expanded. Execution trace:

  1. https://gitlab.com/gitlab-org/gitlab/-/blob/33a30ac369558476d77b92309b6c34613bc8752d/lib/gitlab/ci/config.rb#L25
  2. https://gitlab.com/gitlab-org/gitlab/-/blob/33a30ac369558476d77b92309b6c34613bc8752d/lib/gitlab/ci/config.rb#L68
  3. https://gitlab.com/gitlab-org/gitlab/-/blob/33a30ac369558476d77b92309b6c34613bc8752d/lib/gitlab/ci/config.rb#L81
  4. https://gitlab.com/gitlab-org/gitlab/-/blob/33a30ac369558476d77b92309b6c34613bc8752d/lib/gitlab/ci/config/external/processor.rb#L25
  5. https://gitlab.com/gitlab-org/gitlab/-/blob/33a30ac369558476d77b92309b6c34613bc8752d/lib/gitlab/ci/config/external/processor.rb#L47
  6. https://gitlab.com/gitlab-org/gitlab/-/blob/33a30ac369558476d77b92309b6c34613bc8752d/lib/gitlab/ci/config.rb#L28

At the 6th step we validate the include entry, but it validates a nil value because the config was removed from the hash at step 5.

Should we remove include from the root entry config?

Edited Aug 27, 2025 by 🤖 GitLab Bot 🤖
Assignee Loading
Time tracking Loading