Skip to content

Add endpoint for serialized DAG pipeline

Fabio Pitino requested to merge data-endpoint-for-dag-visualization into master

What does this MR do?

Related to #215524 (closed)

In this MR we are adding a serializer for a pipeline that displays all its jobs with the related DAG needs in the format below:

{
  stages: [
    {
      name: "test",
      groups: [
        {
          name: "jest",
          size: 2,
          jobs: [
            { name: "jest 1/2" },
            { name: "jest 2/2" },
          ],
        },
        { 
          name: "rspec",
          size: 1,
          jobs: [
            { name: "rspec" }
          ]
        },
      ]
    },
    {
      name: "post-test",
      groups: [
        {
          name: "jest-coverage"
          size: 1,
          jobs: [
            { name: "jest-coverage", needs: ["jest"] }
          ]
        },
        { ... }
      ]
    },
  ]
}

Although the overall structure somehow resembles to what we already have for PipelineSerializer I've decided to create a dedicated set of serializers specific for DAG because they will likely evolve to be very different than the PipelineSerializer we have today.

In a follow up MR I will make the change to the PipelinesController#dag action to use this serializer.

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
Edited by Kamil Trzciński

Merge request reports