Add endpoint for serialized DAG pipeline
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
-
Changelog entry -
Documentation (if required) -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers -
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
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 (Back 2025-01-01)