Backend: Create interpolation context from component's spec and user-provided input

Problem

Once we have parsed and validated a CI template's header (specification section), we need to create Interpolation::Context from user-provided spec.

Proposal

Add two new classes:

  • a Gitlab::Ci::Component:Spec class that receives the stable Hash produced by the spec subclasses of Entry::Root
  • a Gitlab::Ci::Component::With class that takes user-provided values from include:component:with

Those classes will then fabricate an Interpolation::Context object.

Edited by Grzegorz Bizon