Improve pipeline icons are alignment
What does this MR do and why?
This change updates the visual layout and spacing of pipeline job components in the MR pipelines tab. The alignment issues mostly appear in Firefox and Safari. When the pipeline has downstream pipelines, the main pipeline jobs are presented in an inline container, while the downstream jobs are presented in an inline-flex container. This causes alignment inconsistencies because the inline container cannot use flex properties or properly participate in the parent flex layout. Adding display: contents makes the containers transparent to the layout, allowing all job elements to align directly within the parent's flex context.
As a side goal for this MR, I updated the retry button on the job page, as it was rendered too close to the job's name.
References
Screenshots or screen recordings
Pipeline stages icons misaligned:
| Browser | Before | After |
|---|---|---|
| Chrome | ![]() |
![]() |
| Firefox | ![]() |
![]() |
| Safari | ![]() |
![]() |
Retry button misaligned:
| Before | After |
|---|---|
![]() |
![]() |
How to set up and validate locally
- Create an MR and navigate to the Pipelines tab.
- Use the patch to simulate the pipeline data with multiple downstreams.
The patch
diff --git a/app/assets/javascripts/ci/pipeline_details/stores/pipelines_store.js b/app/assets/javascripts/ci/pipeline_details/stores/pipelines_store.js
index 96c6448858e3..928d363dab11 100644
--- a/app/assets/javascripts/ci/pipeline_details/stores/pipelines_store.js
+++ b/app/assets/javascripts/ci/pipeline_details/stores/pipelines_store.js
@@ -22,7 +22,1671 @@ export default class PipelinesStore {
}
}
- this.state.pipelines = pipelines;
+ this.state.pipelines = [
+ {
+ id: 1650805047,
+ iid: 3751930,
+ user: {
+ id: 508743,
+ username: 'jarka',
+ public_email: 'jarka@gitlab.com',
+ name: 'Jarka Košanová',
+ state: 'active',
+ locked: false,
+ avatar_url:
+ 'https://secure.gravatar.com/avatar/6ebed9881e76ad4f5cb8fd6a02f379e8fd5133ca78b0207fd81cee2c18528946?s=80&d=identicon',
+ web_url: 'https://gitlab.com/jarka',
+ show_status: false,
+ path: '/jarka',
+ },
+ active: false,
+ name: 'Ruby 3.3.7 MR',
+ source: 'merge_request_event',
+ created_at: '2025-01-31T19:11:58.019Z',
+ updated_at: '2025-01-31T19:12:15.793Z',
+ path: '/gitlab-org/gitlab/-/pipelines/1650805047',
+ flags: {
+ stuck: false,
+ auto_devops: false,
+ merge_request: true,
+ yaml_errors: false,
+ retryable: false,
+ cancelable: true,
+ failure_reason: false,
+ detached_merge_request_pipeline: false,
+ merge_request_pipeline: true,
+ merged_result_pipeline: true,
+ type: 'merge_train',
+ merge_train_pipeline: true,
+ latest: false,
+ },
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650805047',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ stages: [
+ {
+ name: 'sync',
+ id: 3666130245,
+ title: 'sync: skipped',
+ status: {
+ icon: 'status_skipped',
+ text: 'Skipped',
+ label: 'skipped',
+ group: 'skipped',
+ tooltip: 'skipped',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650805047#sync',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650805047#sync',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650805047/stage.json?stage=sync',
+ },
+ {
+ name: 'pre-merge',
+ id: 3666130246,
+ title: 'pre-merge: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650805047#pre-merge',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650805047#pre-merge',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650805047/stage.json?stage=pre-merge',
+ },
+ ],
+ duration: 16,
+ finished_at: '2025-01-31T19:12:15.781Z',
+ event_type_name: 'Merge train pipeline',
+ has_manual_actions: true,
+ has_scheduled_actions: false,
+ },
+ merge_request: {
+ iid: 179672,
+ path: '/gitlab-org/gitlab/-/merge_requests/179672',
+ title: 'Add post-deploy migration to drop cloud_connector_keys column',
+ source_branch: '515818-drop-cc-keys-setting',
+ source_branch_path: null,
+ target_branch: 'master',
+ target_branch_path: '/gitlab-org/gitlab/-/commits/master',
+ },
+ ref: {
+ name: 'refs/merge-requests/179672/train',
+ path: '/gitlab-org/gitlab/-/commits/refs/merge-requests/179672/train',
+ tag: false,
+ branch: false,
+ merge_request: true,
+ },
+ commit: {
+ id: '4dfd926fa05e75d4f0cb8296d59059979d099120',
+ short_id: '4dfd926f',
+ created_at: '2025-01-31T19:11:42.000+00:00',
+ parent_ids: [
+ '5868f86782a572fbb3e5d62fd228097ecfb5b1e4',
+ 'a953059e6d1b315711ac315ba32acce3dfb9499d',
+ ],
+ title: "Merge branch '515818-drop-cc-keys-setting' into 'master' ",
+ message:
+ "Merge branch '515818-drop-cc-keys-setting' into 'master' \n\nAdd post-deploy migration to drop cloud_connector_keys column\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/179672\n\nMerged-by: Jarka Košanová <jarka@gitlab.com>\nApproved-by: Jarka Košanová <jarka@gitlab.com>\nCo-authored-by: Matthias Kaeppler <mkaeppler@gitlab.com>",
+ author_name: 'Jarka Košanová',
+ author_email: 'jarka@gitlab.com',
+ authored_date: '2025-01-31T19:11:42.000+00:00',
+ committer_name: 'GitLab',
+ committer_email: 'noreply@gitlab.com',
+ committed_date: '2025-01-31T19:11:42.000+00:00',
+ trailers: {},
+ extended_trailers: {},
+ web_url:
+ 'https://gitlab.com/gitlab-org/gitlab/-/commit/4dfd926fa05e75d4f0cb8296d59059979d099120',
+ author: {
+ id: 508743,
+ username: 'jarka',
+ public_email: 'jarka@gitlab.com',
+ name: 'Jarka Košanová',
+ state: 'active',
+ locked: false,
+ avatar_url:
+ 'https://secure.gravatar.com/avatar/6ebed9881e76ad4f5cb8fd6a02f379e8fd5133ca78b0207fd81cee2c18528946?s=80&d=identicon',
+ web_url: 'https://gitlab.com/jarka',
+ show_status: false,
+ path: '/jarka',
+ },
+ author_gravatar_url:
+ 'https://secure.gravatar.com/avatar/6ebed9881e76ad4f5cb8fd6a02f379e8fd5133ca78b0207fd81cee2c18528946?s=80&d=identicon',
+ commit_url:
+ 'https://gitlab.com/gitlab-org/gitlab/-/commit/4dfd926fa05e75d4f0cb8296d59059979d099120',
+ commit_path: '/gitlab-org/gitlab/-/commit/4dfd926fa05e75d4f0cb8296d59059979d099120',
+ },
+ merge_request_event_type: 'merge_train',
+ source_sha: 'a953059e6d1b315711ac315ba32acce3dfb9499d',
+ target_sha: '5868f86782a572fbb3e5d62fd228097ecfb5b1e4',
+ cancel_path: '/gitlab-org/gitlab/-/pipelines/1650805047/cancel',
+ failed_builds_count: 0,
+ pipeline_schedule: null,
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ triggered_by: null,
+ triggered: [],
+ },
+ {
+ id: 1650722033,
+ iid: 3751563,
+ user: {
+ id: 1786152,
+ username: 'gitlab-bot',
+ public_email: '',
+ name: '🤖 GitLab Bot 🤖',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png',
+ web_url: 'https://gitlab.com/gitlab-bot',
+ show_status: false,
+ path: '/gitlab-bot',
+ },
+ active: false,
+ name: 'Ruby 3.3.7 MR [tier:3, types:qa,qa-gdk,code, opts:mr-approved,run-e2e-omnibus-once]',
+ source: 'merge_request_event',
+ created_at: '2025-01-31T17:52:06.930Z',
+ updated_at: '2025-01-31T19:13:11.856Z',
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033',
+ flags: {
+ stuck: false,
+ auto_devops: false,
+ merge_request: true,
+ yaml_errors: false,
+ retryable: false,
+ cancelable: true,
+ failure_reason: false,
+ detached_merge_request_pipeline: false,
+ merge_request_pipeline: true,
+ merged_result_pipeline: true,
+ type: 'merged_result',
+ merge_train_pipeline: false,
+ latest: false,
+ },
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ stages: [
+ {
+ name: 'sync',
+ id: 3665933265,
+ title: 'sync: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#sync',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#sync',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=sync',
+ },
+ {
+ name: 'preflight',
+ id: 3665933267,
+ title: 'preflight: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#preflight',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#preflight',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=preflight',
+ },
+ {
+ name: 'prepare',
+ id: 3665933273,
+ title: 'prepare: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#prepare',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#prepare',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=prepare',
+ },
+ {
+ name: 'build-images',
+ id: 3665933281,
+ title: 'build-images: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#build-images',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#build-images',
+ dropdown_path:
+ '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=build-images',
+ },
+ {
+ name: 'fixtures',
+ id: 3665933285,
+ title: 'fixtures: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#fixtures',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#fixtures',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=fixtures',
+ },
+ {
+ name: 'lint',
+ id: 3665933293,
+ title: 'lint: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#lint',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#lint',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=lint',
+ },
+ {
+ name: 'test-frontend',
+ id: 3665933299,
+ title: 'test-frontend: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#test-frontend',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#test-frontend',
+ dropdown_path:
+ '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=test-frontend',
+ },
+ {
+ name: 'test',
+ id: 3665933324,
+ title: 'test: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#test',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#test',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=test',
+ },
+ {
+ name: 'post-test',
+ id: 3665933852,
+ title: 'post-test: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#post-test',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#post-test',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=post-test',
+ },
+ {
+ name: 'qa',
+ id: 3665933863,
+ title: 'qa: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#qa',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#qa',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=qa',
+ },
+ {
+ name: 'post-qa',
+ id: 3665933868,
+ title: 'post-qa: skipped',
+ status: {
+ icon: 'status_skipped',
+ text: 'Skipped',
+ label: 'skipped',
+ group: 'skipped',
+ tooltip: 'skipped',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#post-qa',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#post-qa',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=post-qa',
+ },
+ {
+ name: 'pages',
+ id: 3665933870,
+ title: 'pages: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#pages',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#pages',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=pages',
+ },
+ {
+ name: 'benchmark',
+ id: 3665933871,
+ title: 'benchmark: skipped',
+ status: {
+ icon: 'status_skipped',
+ text: 'Skipped',
+ label: 'skipped',
+ group: 'skipped',
+ tooltip: 'skipped',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650722033#benchmark',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650722033#benchmark',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1650722033/stage.json?stage=benchmark',
+ },
+ ],
+ duration: 4767,
+ finished_at: '2025-01-31T19:13:11.822Z',
+ event_type_name: 'Merged results pipeline',
+ has_manual_actions: true,
+ has_scheduled_actions: false,
+ },
+ merge_request: {
+ iid: 179672,
+ path: '/gitlab-org/gitlab/-/merge_requests/179672',
+ title: 'Add post-deploy migration to drop cloud_connector_keys column',
+ source_branch: '515818-drop-cc-keys-setting',
+ source_branch_path: null,
+ target_branch: 'master',
+ target_branch_path: '/gitlab-org/gitlab/-/commits/master',
+ },
+ ref: {
+ name: 'refs/merge-requests/179672/merge',
+ path: '/gitlab-org/gitlab/-/commits/refs/merge-requests/179672/merge',
+ tag: false,
+ branch: false,
+ merge_request: true,
+ },
+ commit: {
+ id: '5d7b305ce19efe1900674e202b673d70618e322a',
+ short_id: '5d7b305c',
+ created_at: '2025-01-31T17:50:15.000+00:00',
+ parent_ids: [
+ '020cd614ab80af8ec77c41c15035fa3991767468',
+ 'a953059e6d1b315711ac315ba32acce3dfb9499d',
+ ],
+ title: "Merge branch '515818-drop-cc-keys-setting' into 'master' ",
+ message:
+ "Merge branch '515818-drop-cc-keys-setting' into 'master' \n\nAdd post-deploy migration to drop cloud_connector_keys column\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/179672\n\nMerged-by: Matthias Käppler <mkaeppler@gitlab.com>\n",
+ author_name: 'Matthias Käppler',
+ author_email: 'mkaeppler@gitlab.com',
+ authored_date: '2025-01-31T17:50:15.000+00:00',
+ committer_name: 'GitLab',
+ committer_email: 'noreply@gitlab.com',
+ committed_date: '2025-01-31T17:50:15.000+00:00',
+ trailers: {},
+ extended_trailers: {},
+ web_url:
+ 'https://gitlab.com/gitlab-org/gitlab/-/commit/5d7b305ce19efe1900674e202b673d70618e322a',
+ author: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ author_gravatar_url:
+ 'https://secure.gravatar.com/avatar/3eb9cdc66ee7016a998ef09cdcc7486ddfa897956b5498b7acbd195813603713?s=80&d=identicon',
+ commit_url:
+ 'https://gitlab.com/gitlab-org/gitlab/-/commit/5d7b305ce19efe1900674e202b673d70618e322a',
+ commit_path: '/gitlab-org/gitlab/-/commit/5d7b305ce19efe1900674e202b673d70618e322a',
+ },
+ merge_request_event_type: 'merged_result',
+ source_sha: 'a953059e6d1b315711ac315ba32acce3dfb9499d',
+ target_sha: '020cd614ab80af8ec77c41c15035fa3991767468',
+ cancel_path: '/gitlab-org/gitlab/-/pipelines/1650722033/cancel',
+ failed_builds_count: 0,
+ pipeline_schedule: null,
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ triggered_by: null,
+ triggered: [
+ {
+ id: 1650740537,
+ iid: 3751634,
+ active: false,
+ name: 'E2E CNG',
+ source: 'parent_pipeline',
+ user: {
+ id: 1786152,
+ username: 'gitlab-bot',
+ public_email: '',
+ name: '🤖 GitLab Bot 🤖',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png',
+ web_url: 'https://gitlab.com/gitlab-bot',
+ show_status: false,
+ path: '/gitlab-bot',
+ },
+ source_job: {
+ name: 'e2e:test-on-cng',
+ retried: false,
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650740537',
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650740537',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ },
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ },
+ {
+ id: 1650771573,
+ iid: 31885,
+ active: false,
+ name: null,
+ source: 'pipeline',
+ user: {
+ id: 1786152,
+ username: 'gitlab-bot',
+ public_email: '',
+ name: '🤖 GitLab Bot 🤖',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png',
+ web_url: 'https://gitlab.com/gitlab-bot',
+ show_status: false,
+ path: '/gitlab-bot',
+ },
+ source_job: {
+ name: 'e2e:test-product-analytics',
+ retried: false,
+ },
+ path: '/gitlab-org/analytics-section/product-analytics/product-analytics-devkit-mirror/-/pipelines/1650771573',
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path:
+ '/gitlab-org/analytics-section/product-analytics/product-analytics-devkit-mirror/-/pipelines/1650771573',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ },
+ project: {
+ id: 61092214,
+ name: 'Product Analytics devkit - mirror',
+ full_path:
+ '/gitlab-org/analytics-section/product-analytics/product-analytics-devkit-mirror',
+ full_name:
+ 'GitLab.org / Analytics Section / product-analytics / Product Analytics devkit - mirror',
+ refs_url:
+ '/gitlab-org/analytics-section/product-analytics/product-analytics-devkit-mirror/refs',
+ forked: null,
+ },
+ },
+ {
+ id: 1650771550,
+ iid: 3751856,
+ active: false,
+ name: 'E2E GDK',
+ source: 'parent_pipeline',
+ user: {
+ id: 1786152,
+ username: 'gitlab-bot',
+ public_email: '',
+ name: '🤖 GitLab Bot 🤖',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png',
+ web_url: 'https://gitlab.com/gitlab-bot',
+ show_status: false,
+ path: '/gitlab-bot',
+ },
+ source_job: {
+ name: 'e2e:test-on-gdk',
+ retried: false,
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1650771550',
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1650771550',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ },
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ },
+ ],
+ },
+ {
+ id: 1648194558,
+ iid: 3743188,
+ user: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ active: false,
+ name: 'Ruby 3.3.6 MR [tier:1, types:code,rspec-predictive, opts:]',
+ source: 'merge_request_event',
+ created_at: '2025-01-30T09:56:44.304Z',
+ updated_at: '2025-01-30T13:17:19.181Z',
+ path: '/gitlab-org/gitlab/-/pipelines/1648194558',
+ flags: {
+ stuck: false,
+ auto_devops: false,
+ merge_request: true,
+ yaml_errors: false,
+ retryable: false,
+ cancelable: true,
+ failure_reason: false,
+ detached_merge_request_pipeline: false,
+ merge_request_pipeline: true,
+ merged_result_pipeline: true,
+ type: 'merged_result',
+ merge_train_pipeline: false,
+ latest: false,
+ },
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648194558',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ stages: [
+ {
+ name: 'sync',
+ id: 3659895265,
+ title: 'sync: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648194558#sync',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648194558#sync',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648194558/stage.json?stage=sync',
+ },
+ {
+ name: 'preflight',
+ id: 3659895279,
+ title: 'preflight: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648194558#preflight',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648194558#preflight',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648194558/stage.json?stage=preflight',
+ },
+ {
+ name: 'prepare',
+ id: 3659895333,
+ title: 'prepare: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648194558#prepare',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648194558#prepare',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648194558/stage.json?stage=prepare',
+ },
+ {
+ name: 'fixtures',
+ id: 3659895386,
+ title: 'fixtures: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648194558#fixtures',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648194558#fixtures',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648194558/stage.json?stage=fixtures',
+ },
+ {
+ name: 'lint',
+ id: 3659895394,
+ title: 'lint: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648194558#lint',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648194558#lint',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648194558/stage.json?stage=lint',
+ },
+ {
+ name: 'test-frontend',
+ id: 3659895443,
+ title: 'test-frontend: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648194558#test-frontend',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648194558#test-frontend',
+ dropdown_path:
+ '/gitlab-org/gitlab/-/pipelines/1648194558/stage.json?stage=test-frontend',
+ },
+ {
+ name: 'test',
+ id: 3659895459,
+ title: 'test: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648194558#test',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648194558#test',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648194558/stage.json?stage=test',
+ },
+ {
+ name: 'post-test',
+ id: 3659895696,
+ title: 'post-test: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648194558#post-test',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648194558#post-test',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648194558/stage.json?stage=post-test',
+ },
+ {
+ name: 'benchmark',
+ id: 3659895706,
+ title: 'benchmark: skipped',
+ status: {
+ icon: 'status_skipped',
+ text: 'Skipped',
+ label: 'skipped',
+ group: 'skipped',
+ tooltip: 'skipped',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648194558#benchmark',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648194558#benchmark',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648194558/stage.json?stage=benchmark',
+ },
+ ],
+ duration: 4000,
+ finished_at: '2025-01-30T13:17:19.158Z',
+ event_type_name: 'Merged results pipeline',
+ has_manual_actions: true,
+ has_scheduled_actions: false,
+ },
+ merge_request: {
+ iid: 179672,
+ path: '/gitlab-org/gitlab/-/merge_requests/179672',
+ title: 'Add post-deploy migration to drop cloud_connector_keys column',
+ source_branch: '515818-drop-cc-keys-setting',
+ source_branch_path: null,
+ target_branch: 'master',
+ target_branch_path: '/gitlab-org/gitlab/-/commits/master',
+ },
+ ref: {
+ name: 'refs/merge-requests/179672/merge',
+ path: '/gitlab-org/gitlab/-/commits/refs/merge-requests/179672/merge',
+ tag: false,
+ branch: false,
+ merge_request: true,
+ },
+ commit: {
+ id: '7f613263f3c44e9656dc19e483e3dbeb3dc1af07',
+ short_id: '7f613263',
+ created_at: '2025-01-30T09:56:07.000+00:00',
+ parent_ids: [
+ '05e149f10d5a411ef6f8529d7ee5ebb6847877bc',
+ 'a953059e6d1b315711ac315ba32acce3dfb9499d',
+ ],
+ title: "Merge branch '515818-drop-cc-keys-setting' into 'master' ",
+ message:
+ "Merge branch '515818-drop-cc-keys-setting' into 'master' \n\nAdd post-deploy migration to drop cloud_connector_keys column\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/179672\n\nMerged-by: Matthias Käppler <mkaeppler@gitlab.com>\n",
+ author_name: 'Matthias Käppler',
+ author_email: 'mkaeppler@gitlab.com',
+ authored_date: '2025-01-30T09:56:07.000+00:00',
+ committer_name: 'GitLab',
+ committer_email: 'noreply@gitlab.com',
+ committed_date: '2025-01-30T09:56:07.000+00:00',
+ trailers: {},
+ extended_trailers: {},
+ web_url:
+ 'https://gitlab.com/gitlab-org/gitlab/-/commit/7f613263f3c44e9656dc19e483e3dbeb3dc1af07',
+ author: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ author_gravatar_url:
+ 'https://secure.gravatar.com/avatar/3eb9cdc66ee7016a998ef09cdcc7486ddfa897956b5498b7acbd195813603713?s=80&d=identicon',
+ commit_url:
+ 'https://gitlab.com/gitlab-org/gitlab/-/commit/7f613263f3c44e9656dc19e483e3dbeb3dc1af07',
+ commit_path: '/gitlab-org/gitlab/-/commit/7f613263f3c44e9656dc19e483e3dbeb3dc1af07',
+ },
+ merge_request_event_type: 'merged_result',
+ source_sha: 'a953059e6d1b315711ac315ba32acce3dfb9499d',
+ target_sha: '05e149f10d5a411ef6f8529d7ee5ebb6847877bc',
+ cancel_path: '/gitlab-org/gitlab/-/pipelines/1648194558/cancel',
+ failed_builds_count: 0,
+ pipeline_schedule: null,
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ triggered_by: null,
+ triggered: [
+ {
+ id: 1648216750,
+ iid: 3743358,
+ active: false,
+ name: null,
+ source: 'parent_pipeline',
+ user: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ source_job: {
+ name: 'rspec:predictive:trigger single-db',
+ retried: false,
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648216750',
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648216750',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ },
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ },
+ {
+ id: 1648216747,
+ iid: 3743356,
+ active: false,
+ name: null,
+ source: 'parent_pipeline',
+ user: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ source_job: {
+ name: 'rspec-ee:predictive:trigger',
+ retried: false,
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648216747',
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648216747',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ },
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ },
+ {
+ id: 1648216752,
+ iid: 3743359,
+ active: false,
+ name: null,
+ source: 'parent_pipeline',
+ user: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ source_job: {
+ name: 'rspec:predictive:trigger single-db-ci-connection',
+ retried: false,
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648216752',
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648216752',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ },
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ },
+ {
+ id: 1648197719,
+ iid: 1468815,
+ active: false,
+ name: 'Ruby 3.3.6 as-if-foss',
+ source: 'pipeline',
+ user: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ source_job: {
+ name: 'start-as-if-foss',
+ retried: false,
+ },
+ path: '/gitlab-org/gitlab-foss/-/pipelines/1648197719',
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab-foss/-/pipelines/1648197719',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ },
+ project: {
+ id: 13083,
+ name: 'GitLab FOSS',
+ full_path: '/gitlab-org/gitlab-foss',
+ full_name: 'GitLab.org / GitLab FOSS',
+ refs_url: '/gitlab-org/gitlab-foss/refs',
+ forked: false,
+ },
+ },
+ {
+ id: 1648216743,
+ iid: 3743355,
+ active: false,
+ name: null,
+ source: 'parent_pipeline',
+ user: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ source_job: {
+ name: 'rspec:predictive:trigger',
+ retried: false,
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648216743',
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648216743',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ },
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ },
+ {
+ id: 1648216756,
+ iid: 3743360,
+ active: false,
+ name: null,
+ source: 'parent_pipeline',
+ user: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ source_job: {
+ name: 'rspec-ee:predictive:trigger single-db-ci-connection',
+ retried: false,
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648216756',
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648216756',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ },
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ },
+ {
+ id: 1648216749,
+ iid: 3743357,
+ active: false,
+ name: null,
+ source: 'parent_pipeline',
+ user: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ source_job: {
+ name: 'rspec-ee:predictive:trigger single-db',
+ retried: false,
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648216749',
+ details: {
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648216749',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ },
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ },
+ ],
+ },
+ {
+ id: 1648183454,
+ iid: 3743118,
+ user: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ active: false,
+ name: 'Ruby 3.3.6 MR [tier:N/A, types:code,rspec-predictive, opts:]',
+ source: 'merge_request_event',
+ created_at: '2025-01-30T09:50:04.703Z',
+ updated_at: '2025-01-30T09:58:19.114Z',
+ path: '/gitlab-org/gitlab/-/pipelines/1648183454',
+ flags: {
+ stuck: false,
+ auto_devops: false,
+ merge_request: true,
+ yaml_errors: false,
+ retryable: true,
+ cancelable: true,
+ failure_reason: false,
+ detached_merge_request_pipeline: false,
+ merge_request_pipeline: true,
+ merged_result_pipeline: true,
+ type: 'merged_result',
+ merge_train_pipeline: false,
+ latest: false,
+ },
+ details: {
+ status: {
+ icon: 'status_failed',
+ text: 'Failed',
+ label: 'failed',
+ group: 'failed',
+ tooltip: 'failed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648183454',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png',
+ },
+ stages: [
+ {
+ name: 'sync',
+ id: 3659864485,
+ title: 'sync: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648183454#sync',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648183454#sync',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648183454/stage.json?stage=sync',
+ },
+ {
+ name: 'preflight',
+ id: 3659864489,
+ title: 'preflight: failed',
+ status: {
+ icon: 'status_failed',
+ text: 'Failed',
+ label: 'failed',
+ group: 'failed',
+ tooltip: 'failed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648183454#preflight',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648183454#preflight',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648183454/stage.json?stage=preflight',
+ },
+ {
+ name: 'prepare',
+ id: 3659864505,
+ title: 'prepare: failed',
+ status: {
+ icon: 'status_failed',
+ text: 'Failed',
+ label: 'failed',
+ group: 'failed',
+ tooltip: 'failed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648183454#prepare',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648183454#prepare',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648183454/stage.json?stage=prepare',
+ },
+ {
+ name: 'fixtures',
+ id: 3659864526,
+ title: 'fixtures: passed',
+ status: {
+ icon: 'status_success',
+ text: 'Passed',
+ label: 'passed',
+ group: 'success',
+ tooltip: 'passed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648183454#fixtures',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648183454#fixtures',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648183454/stage.json?stage=fixtures',
+ },
+ {
+ name: 'lint',
+ id: 3659864530,
+ title: 'lint: failed',
+ status: {
+ icon: 'status_failed',
+ text: 'Failed',
+ label: 'failed',
+ group: 'failed',
+ tooltip: 'failed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648183454#lint',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648183454#lint',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648183454/stage.json?stage=lint',
+ },
+ {
+ name: 'test-frontend',
+ id: 3659864542,
+ title: 'test-frontend: canceled',
+ status: {
+ icon: 'status_canceled',
+ text: 'Canceled',
+ label: 'canceled',
+ group: 'canceled',
+ tooltip: 'canceled',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648183454#test-frontend',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_canceled-ca35321a6cda9943ebdf6631c8057ffd54064f3ba20cfe0ebc4b0b992041c430.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648183454#test-frontend',
+ dropdown_path:
+ '/gitlab-org/gitlab/-/pipelines/1648183454/stage.json?stage=test-frontend',
+ },
+ {
+ name: 'test',
+ id: 3659864545,
+ title: 'test: canceled',
+ status: {
+ icon: 'status_canceled',
+ text: 'Canceled',
+ label: 'canceled',
+ group: 'canceled',
+ tooltip: 'canceled',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648183454#test',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_canceled-ca35321a6cda9943ebdf6631c8057ffd54064f3ba20cfe0ebc4b0b992041c430.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648183454#test',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648183454/stage.json?stage=test',
+ },
+ {
+ name: 'post-test',
+ id: 3659865004,
+ title: 'post-test: canceled',
+ status: {
+ icon: 'status_canceled',
+ text: 'Canceled',
+ label: 'canceled',
+ group: 'canceled',
+ tooltip: 'canceled',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648183454#post-test',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_canceled-ca35321a6cda9943ebdf6631c8057ffd54064f3ba20cfe0ebc4b0b992041c430.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648183454#post-test',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648183454/stage.json?stage=post-test',
+ },
+ {
+ name: 'benchmark',
+ id: 3659865052,
+ title: 'benchmark: skipped',
+ status: {
+ icon: 'status_skipped',
+ text: 'Skipped',
+ label: 'skipped',
+ group: 'skipped',
+ tooltip: 'skipped',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab/-/pipelines/1648183454#benchmark',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png',
+ },
+ path: '/gitlab-org/gitlab/-/pipelines/1648183454#benchmark',
+ dropdown_path: '/gitlab-org/gitlab/-/pipelines/1648183454/stage.json?stage=benchmark',
+ },
+ ],
+ duration: 474,
+ finished_at: '2025-01-30T09:58:19.090Z',
+ event_type_name: 'Merged results pipeline',
+ has_manual_actions: true,
+ has_scheduled_actions: false,
+ },
+ merge_request: {
+ iid: 179672,
+ path: '/gitlab-org/gitlab/-/merge_requests/179672',
+ title: 'Add post-deploy migration to drop cloud_connector_keys column',
+ source_branch: '515818-drop-cc-keys-setting',
+ source_branch_path: null,
+ target_branch: 'master',
+ target_branch_path: '/gitlab-org/gitlab/-/commits/master',
+ },
+ ref: {
+ name: 'refs/merge-requests/179672/merge',
+ path: '/gitlab-org/gitlab/-/commits/refs/merge-requests/179672/merge',
+ tag: false,
+ branch: false,
+ merge_request: true,
+ },
+ commit: {
+ id: '315ccc4863b8383d030db4245e5a0c91dd6b2cbb',
+ short_id: '315ccc48',
+ created_at: '2025-01-30T09:49:39.000+00:00',
+ parent_ids: [
+ 'a03905fb915baa68d32f8a5b08646bc4c9a4a745',
+ '2829d51761e9568d8032b78fccb0fa16984bd62f',
+ ],
+ title: "Merge branch '515818-drop-cc-keys-setting' into 'master' ",
+ message:
+ "Merge branch '515818-drop-cc-keys-setting' into 'master' \n\nAdd post-deploy migration to drop cloud_connector_keys column\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/179672\n\nMerged-by: Matthias Käppler <mkaeppler@gitlab.com>\n",
+ author_name: 'Matthias Käppler',
+ author_email: 'mkaeppler@gitlab.com',
+ authored_date: '2025-01-30T09:49:39.000+00:00',
+ committer_name: 'GitLab',
+ committer_email: 'noreply@gitlab.com',
+ committed_date: '2025-01-30T09:49:39.000+00:00',
+ trailers: {},
+ extended_trailers: {},
+ web_url:
+ 'https://gitlab.com/gitlab-org/gitlab/-/commit/315ccc4863b8383d030db4245e5a0c91dd6b2cbb',
+ author: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ author_gravatar_url:
+ 'https://secure.gravatar.com/avatar/3eb9cdc66ee7016a998ef09cdcc7486ddfa897956b5498b7acbd195813603713?s=80&d=identicon',
+ commit_url:
+ 'https://gitlab.com/gitlab-org/gitlab/-/commit/315ccc4863b8383d030db4245e5a0c91dd6b2cbb',
+ commit_path: '/gitlab-org/gitlab/-/commit/315ccc4863b8383d030db4245e5a0c91dd6b2cbb',
+ },
+ merge_request_event_type: 'merged_result',
+ source_sha: '2829d51761e9568d8032b78fccb0fa16984bd62f',
+ target_sha: 'a03905fb915baa68d32f8a5b08646bc4c9a4a745',
+ retry_path: '/gitlab-org/gitlab/-/pipelines/1648183454/retry',
+ cancel_path: '/gitlab-org/gitlab/-/pipelines/1648183454/cancel',
+ failed_builds_count: 3,
+ pipeline_schedule: null,
+ project: {
+ id: 278964,
+ name: 'GitLab',
+ full_path: '/gitlab-org/gitlab',
+ full_name: 'GitLab.org / GitLab',
+ refs_url: '/gitlab-org/gitlab/refs',
+ forked: false,
+ },
+ triggered_by: null,
+ triggered: [
+ {
+ id: 1648187152,
+ iid: 1468774,
+ active: false,
+ name: 'Ruby 3.3.6 as-if-foss',
+ source: 'pipeline',
+ user: {
+ id: 4713264,
+ username: 'mkaeppler',
+ public_email: 'mkaeppler@gitlab.com',
+ name: 'Matthias Käppler',
+ state: 'active',
+ locked: false,
+ avatar_url: 'https://gitlab.com/uploads/-/system/user/avatar/4713264/avatar.png',
+ web_url: 'https://gitlab.com/mkaeppler',
+ show_status: false,
+ path: '/mkaeppler',
+ },
+ source_job: {
+ name: 'start-as-if-foss',
+ retried: false,
+ },
+ path: '/gitlab-org/gitlab-foss/-/pipelines/1648187152',
+ details: {
+ status: {
+ icon: 'status_failed',
+ text: 'Failed',
+ label: 'failed',
+ group: 'failed',
+ tooltip: 'failed',
+ has_details: true,
+ details_path: '/gitlab-org/gitlab-foss/-/pipelines/1648187152',
+ illustration: null,
+ favicon:
+ '/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png',
+ },
+ },
+ project: {
+ id: 13083,
+ name: 'GitLab FOSS',
+ full_path: '/gitlab-org/gitlab-foss',
+ full_name: 'GitLab.org / GitLab FOSS',
+ refs_url: '/gitlab-org/gitlab-foss/refs',
+ forked: false,
+ },
+ },
+ ],
+ },
+ ];
}
storeCount(count = {}) {
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #515988







