Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2024-01-17 12:08:04 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2024-01-17 12:08:04 +0300
commitf4cab593243c89a6e22a546d253a546e0d1174af (patch)
tree84e195ef03fa8c4e2e2242d55b3822956f852fe9
parent172e4a12748fd146fdd0e9eca12ade4c51dabda9 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.gitlab/ci/package-and-test/main.gitlab-ci.yml2
-rw-r--r--app/assets/javascripts/ci/job_details/components/empty_state.vue51
-rw-r--r--app/assets/javascripts/ci/job_details/components/manual_variables_form.vue2
-rw-r--r--app/serializers/detailed_status_entity.rb4
-rw-r--r--data/whats_new/202401180001_16_8.yml23
-rw-r--r--db/post_migrate/20240116131144_remove_application_settings_ai_access_token_column_corrected.rb15
-rw-r--r--db/schema_migrations/202401161311441
-rw-r--r--db/structure.sql2
-rw-r--r--doc/administration/job_artifacts_troubleshooting.md8
-rw-r--r--doc/ci/components/index.md32
-rw-r--r--lib/gitlab/ci/status/build/canceled.rb4
-rw-r--r--lib/gitlab/ci/status/build/common.rb4
-rw-r--r--lib/gitlab/ci/status/build/created.rb4
-rw-r--r--lib/gitlab/ci/status/build/erased.rb2
-rw-r--r--lib/gitlab/ci/status/build/failed_unmet_prerequisites.rb2
-rw-r--r--lib/gitlab/ci/status/build/manual.rb2
-rw-r--r--lib/gitlab/ci/status/build/pending.rb4
-rw-r--r--lib/gitlab/ci/status/build/preparing.rb4
-rw-r--r--lib/gitlab/ci/status/build/scheduled.rb4
-rw-r--r--lib/gitlab/ci/status/build/skipped.rb4
-rw-r--r--lib/gitlab/ci/status/processable/waiting_for_resource.rb4
-rw-r--r--lib/gitlab/internal_events.rb12
-rw-r--r--qa/qa/specs/features/api/9_data_stores/user_inherited_access_spec.rb1
-rw-r--r--qa/qa/specs/features/browser_ui/9_data_stores/group/group_member_access_request_spec.rb6
-rw-r--r--qa/qa/specs/features/browser_ui/9_data_stores/group/transfer_group_spec.rb2
-rw-r--r--qa/qa/specs/features/browser_ui/9_data_stores/user/follow_user_activity_spec.rb2
-rw-r--r--qa/qa/specs/features/browser_ui/9_data_stores/user/user_inherited_access_spec.rb4
-rw-r--r--scripts/internal_events/monitor.rb4
-rw-r--r--spec/frontend/ci/job_details/components/empty_state_spec.js4
-rw-r--r--spec/frontend/ci/jobs_mock_data.js108
-rw-r--r--spec/frontend/ci/pipeline_details/linked_pipelines_mock.json284
-rw-r--r--spec/frontend/ci/pipeline_details/mock_data.js8
-rw-r--r--spec/frontend/environments/graphql/mock_data.js16
-rw-r--r--spec/frontend/environments/mock_data.js4
-rw-r--r--spec/lib/gitlab/internal_events_spec.rb15
35 files changed, 343 insertions, 305 deletions
diff --git a/.gitlab/ci/package-and-test/main.gitlab-ci.yml b/.gitlab/ci/package-and-test/main.gitlab-ci.yml
index 99c97de1515..88056092bf3 100644
--- a/.gitlab/ci/package-and-test/main.gitlab-ci.yml
+++ b/.gitlab/ci/package-and-test/main.gitlab-ci.yml
@@ -357,7 +357,7 @@ oauth:
QA_GITLAB_HOSTNAME: "gitlab"
QA_GITLAB_USE_TLS: "true"
QA_RSPEC_TAGS: --tag oauth
- GITLAB_QA_OPTS: --omnibus-config facebook_oauth --omnibus-config github_oauth
+ GITLAB_QA_OPTS: --omnibus-config github_oauth
rules:
- !reference [.rules:test:qa-default-branch, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
diff --git a/app/assets/javascripts/ci/job_details/components/empty_state.vue b/app/assets/javascripts/ci/job_details/components/empty_state.vue
index 5756d4a71df..ac4f9c0c7fb 100644
--- a/app/assets/javascripts/ci/job_details/components/empty_state.vue
+++ b/app/assets/javascripts/ci/job_details/components/empty_state.vue
@@ -1,10 +1,10 @@
<script>
-import { GlLink } from '@gitlab/ui';
+import { GlButton } from '@gitlab/ui';
import ManualVariablesForm from '~/ci/job_details/components/manual_variables_form.vue';
export default {
components: {
- GlLink,
+ GlButton,
ManualVariablesForm,
},
props: {
@@ -65,35 +65,38 @@ export default {
};
</script>
<template>
- <div class="row empty-state">
- <div class="col-12">
- <div :class="illustrationSizeClass" class="svg-content">
- <img :src="illustrationPath" />
- </div>
+ <div class="gl-display-flex gl-empty-state gl-text-center gl-flex-direction-column">
+ <div :class="illustrationSizeClass" class="gl-max-w-full">
+ <!-- eslint-disable @gitlab/vue-require-i18n-attribute-strings -->
+ <img alt="" class="gl-max-w-full" :src="illustrationPath" />
</div>
-
- <div class="col-12">
- <div class="text-content">
- <h4 class="text-center" data-testid="job-empty-state-title">{{ title }}</h4>
-
- <p v-if="content" data-testid="job-empty-state-content">{{ content }}</p>
- </div>
+ <div class="gl-empty-state-content gl-mx-auto gl-my-0 gl-m-auto gl-p-5">
+ <h1
+ class="gl-font-size-h-display gl-line-height-36 gl-mt-0 gl-mb-0"
+ data-testid="job-empty-state-title"
+ >
+ {{ title }}
+ </h1>
+ <p v-if="content" class="gl-mt-4 gl-mb-0" data-testid="job-empty-state-content">
+ {{ content }}
+ </p>
<manual-variables-form
v-if="shouldRenderManualVariables"
:is-retryable="isRetryable"
:job-id="jobId"
@hideManualVariablesForm="$emit('hideManualVariablesForm')"
/>
- <div v-if="action && !shouldRenderManualVariables" class="text-content">
- <div class="text-center">
- <gl-link
- :href="action.path"
- :data-method="action.method"
- class="btn gl-button btn-confirm gl-text-decoration-none!"
- data-testid="job-empty-state-action"
- >{{ action.button_title }}</gl-link
- >
- </div>
+ <div
+ v-if="action && !shouldRenderManualVariables"
+ class="gl-display-flex gl-flex-wrap gl-mt-5 gl-justify-content-center"
+ >
+ <gl-button
+ :href="action.path"
+ :data-method="action.method"
+ variant="confirm"
+ data-testid="job-empty-state-action"
+ >{{ action.button_title }}</gl-button
+ >
</div>
</div>
</div>
diff --git a/app/assets/javascripts/ci/job_details/components/manual_variables_form.vue b/app/assets/javascripts/ci/job_details/components/manual_variables_form.vue
index 836426f0bde..cc833eb2a45 100644
--- a/app/assets/javascripts/ci/job_details/components/manual_variables_form.vue
+++ b/app/assets/javascripts/ci/job_details/components/manual_variables_form.vue
@@ -289,13 +289,11 @@ export default {
<div class="gl-display-flex gl-justify-content-center gl-mt-5">
<gl-button
v-if="isRetryable"
- class="gl-mt-5"
data-testid="cancel-btn"
@click="$emit('hideManualVariablesForm')"
>{{ $options.i18n.cancel }}</gl-button
>
<gl-button
- class="gl-mt-5"
variant="confirm"
category="primary"
:disabled="runBtnDisabled"
diff --git a/app/serializers/detailed_status_entity.rb b/app/serializers/detailed_status_entity.rb
index 1f1a805af67..37d7bb8fdbe 100644
--- a/app/serializers/detailed_status_entity.rb
+++ b/app/serializers/detailed_status_entity.rb
@@ -15,8 +15,8 @@ class DetailedStatusEntity < Grape::Entity
type: 'object',
example: <<~JSON
{
- "image": "illustrations/job_not_triggered.svg",
- "size": "svg-306",
+ "image": "illustrations/empty-state/empty-job-not-triggered-md.svg",
+ "size": "",
"title": "This job has not been triggered yet",
"content": "This job depends on upstream jobs that need to succeed in order for this job to be triggered"
}
diff --git a/data/whats_new/202401180001_16_8.yml b/data/whats_new/202401180001_16_8.yml
deleted file mode 100644
index 54ea99a54b1..00000000000
--- a/data/whats_new/202401180001_16_8.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-- name: GCP Secret Manager support
- description: |
- Secrets stored in GCP Secrets Manager can now be easily retrieved and used in CI/CD jobs. Our new integration simplifies the process of interacting with GCP Secrets Manager through GitLab CI/CD, helping you streamline your build and deploy processes! This is just one of the many ways [GitLab and Google Cloud are better together](https://about.gitlab.com/blog/2023/08/29/gitlab-google-partnership-s3c/)!
- stage: Verify
- self-managed: true
- gitlab-com: true
- available_in: [Premium, Ultimate]
- documentation_link: https://docs.gitlab.com/ee/ci/secrets/gcp_secret_manager.html # This is the documentation URL, but can be a URL to a video if there is one
- image_url: https://about.gitlab.com/images/16_8/gcp_secrets_mgr.png
- published_at: 2024-01-18
- release: 16.8
-
-- name: Enforce 2FA for GitLab administrators
- description: |
- You can now enforce whether GitLab administrators are required to use two-factor authentication (2FA) in their self-managed instance. It is good security practice to use 2FA for all accounts, especially for privileged accounts like administrators. If this setting is enforced, and an administrator does not already use 2FA, they must set 2FA up on their next sign-in.
- stage: Govern
- self-managed: true
- gitlab-com: false
- available_in: [Free, Premium, Ultimate]
- documentation_link: https://docs.gitlab.com/ee/security/two_factor_authentication.html#enforce-2fa-for-administrator-users # This is the documentation URL, but can be a URL to a video if there is one
- image_url: https://img.youtube.com/vi/fHleeXzoB6k/hqdefault.jpg
- published_at: 2024-01-18
- release: 16.8
diff --git a/db/post_migrate/20240116131144_remove_application_settings_ai_access_token_column_corrected.rb b/db/post_migrate/20240116131144_remove_application_settings_ai_access_token_column_corrected.rb
new file mode 100644
index 00000000000..25e3f8fa806
--- /dev/null
+++ b/db/post_migrate/20240116131144_remove_application_settings_ai_access_token_column_corrected.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveApplicationSettingsAiAccessTokenColumnCorrected < Gitlab::Database::Migration[2.2]
+ milestone '16.9'
+
+ def up
+ remove_column :application_settings, :encrypted_ai_access_token, if_exists: true
+ remove_column :application_settings, :encrypted_ai_access_token_iv, if_exists: true
+ end
+
+ def down
+ add_column :application_settings, :encrypted_ai_access_token, :binary, if_not_exists: true
+ add_column :application_settings, :encrypted_ai_access_token_iv, :binary, if_not_exists: true
+ end
+end
diff --git a/db/schema_migrations/20240116131144 b/db/schema_migrations/20240116131144
new file mode 100644
index 00000000000..bd01219df01
--- /dev/null
+++ b/db/schema_migrations/20240116131144
@@ -0,0 +1 @@
+f10ce3c873e430283102232bf1830eda9a746b42862566500e05f6725988a21d \ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index e2ff22c7a0f..10e32e7cdca 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -12584,8 +12584,6 @@ CREATE TABLE application_settings (
wiki_asciidoc_allow_uri_includes boolean DEFAULT false NOT NULL,
namespace_aggregation_schedule_lease_duration_in_seconds integer DEFAULT 300 NOT NULL,
container_registry_data_repair_detail_worker_max_concurrency integer DEFAULT 2 NOT NULL,
- encrypted_ai_access_token bytea,
- encrypted_ai_access_token_iv bytea,
vertex_ai_host text,
encrypted_vertex_ai_credentials bytea,
encrypted_vertex_ai_credentials_iv bytea,
diff --git a/doc/administration/job_artifacts_troubleshooting.md b/doc/administration/job_artifacts_troubleshooting.md
index 6cdde87cc1d..1dc16d8347c 100644
--- a/doc/administration/job_artifacts_troubleshooting.md
+++ b/doc/administration/job_artifacts_troubleshooting.md
@@ -276,9 +276,9 @@ You can manually remove job artifacts associated with multiple completed jobs wh
**retaining their job logs** from the [Rails console](operations/rails_console.md).
A completed job is any job with the status of success, failed, canceled, or skipped.
-To delete jobs completed before a specific date:
+To delete job artifacts from jobs completed before a specific date:
-1. Select jobs to be deleted:
+1. Select the jobs with artifacts to be deleted:
To select all jobs with artifacts for a single project:
@@ -333,9 +333,9 @@ You can manually remove job artifacts associated with multiple completed jobs wh
**retaining their job logs** from the [Rails console](operations/rails_console.md).
A completed job is any job with the status of success, failed, canceled, or skipped.
-To delete jobs completed before a specific date:
+To delete job artifacts and logs from jobs completed before a specific date:
-1. Select the jobs to be deleted:
+1. Select the jobs with artifacts and logs to be deleted:
To select jobs with artifacts for a single project:
diff --git a/doc/ci/components/index.md b/doc/ci/components/index.md
index e7c286a507b..830c91616f7 100644
--- a/doc/ci/components/index.md
+++ b/doc/ci/components/index.md
@@ -255,6 +255,38 @@ To publish the component project in the catalog again, you need to [publish a ne
This section describes some best practices for creating high quality component projects.
+### Write a clear `README.md`
+
+Each component project should have clear and comprehensive documentation. To
+write a good `README.md` file:
+
+- The documentation should start with a summary of the capabilities that the components in the project provide.
+- If the project contains multiple components, use a [table of contents](../../user/markdown.md#table-of-contents)
+ to help users quickly jump to a specific component's details.
+- Add a `## Components` section with sub-sections like `### Component A` for each component in the project.
+- In each component section:
+ - Add a description of what the component does.
+ - Add at least one YAML example showing how to use it.
+ - If the component uses inputs, add a table showing all inputs with name, description, type, and default value.
+ - If the component uses any variables or secrets, those should be documented too.
+- A `## Contribute` section is recommended if contributions are welcome.
+
+If a component needs more instructions, add additional documentation in a Markdown file
+in the component directory and link to it from the main `README.md` file. For example:
+
+```plaintext
+README.md # with links to the specific docs.md
+templates/
+├── component-1/
+│ ├── template.yml
+│ └── docs.md
+└── component-2/
+ ├── template.yml
+ └── docs.md
+```
+
+For an example of a component `README.md`, see the [Deploy to AWS with GitLab CI/CD component's `README.md`](https://gitlab.com/components/aws/-/blob/main/README.md).
+
### Test the component
Testing CI/CD components as part of the development workflow is strongly recommended
diff --git a/lib/gitlab/ci/status/build/canceled.rb b/lib/gitlab/ci/status/build/canceled.rb
index 0518b9e673d..dbdf45aedeb 100644
--- a/lib/gitlab/ci/status/build/canceled.rb
+++ b/lib/gitlab/ci/status/build/canceled.rb
@@ -7,8 +7,8 @@ module Gitlab
class Canceled < Status::Extended
def illustration
{
- image: 'illustrations/canceled-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-canceled-md.svg',
+ size: '',
title: _('This job has been canceled')
}
end
diff --git a/lib/gitlab/ci/status/build/common.rb b/lib/gitlab/ci/status/build/common.rb
index 6a75ec5c37f..78d84e2d058 100644
--- a/lib/gitlab/ci/status/build/common.rb
+++ b/lib/gitlab/ci/status/build/common.rb
@@ -7,8 +7,8 @@ module Gitlab
module Common
def illustration
{
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: '',
title: _('This job does not have a trace.')
}
end
diff --git a/lib/gitlab/ci/status/build/created.rb b/lib/gitlab/ci/status/build/created.rb
index 780fea23123..92485392136 100644
--- a/lib/gitlab/ci/status/build/created.rb
+++ b/lib/gitlab/ci/status/build/created.rb
@@ -7,8 +7,8 @@ module Gitlab
class Created < Status::Extended
def illustration
{
- image: 'illustrations/job_not_triggered.svg',
- size: 'svg-306',
+ image: 'illustrations/empty-state/empty-job-not-triggered-md.svg',
+ size: '',
title: _('This job has not been triggered yet'),
content: _('This job depends on upstream jobs that need to succeed in order for this job to be triggered')
}
diff --git a/lib/gitlab/ci/status/build/erased.rb b/lib/gitlab/ci/status/build/erased.rb
index c3430b8cc1c..a78bc308d87 100644
--- a/lib/gitlab/ci/status/build/erased.rb
+++ b/lib/gitlab/ci/status/build/erased.rb
@@ -8,7 +8,7 @@ module Gitlab
def illustration
{
image: 'illustrations/empty-state/empty-projects-deleted-md.svg',
- size: 'svg-150',
+ size: '',
title: _('Job has been erased')
}
end
diff --git a/lib/gitlab/ci/status/build/failed_unmet_prerequisites.rb b/lib/gitlab/ci/status/build/failed_unmet_prerequisites.rb
index eaad3969a4c..e82c8050be7 100644
--- a/lib/gitlab/ci/status/build/failed_unmet_prerequisites.rb
+++ b/lib/gitlab/ci/status/build/failed_unmet_prerequisites.rb
@@ -8,7 +8,7 @@ module Gitlab
def illustration
{
image: 'illustrations/pipelines_failed.svg',
- size: 'svg-430',
+ size: 'svg-content svg-430',
title: _('Failed to create resources'),
content: _('Retry this job in order to create the necessary resources.')
}
diff --git a/lib/gitlab/ci/status/build/manual.rb b/lib/gitlab/ci/status/build/manual.rb
index 5e77db3d336..39ae0d53b5f 100644
--- a/lib/gitlab/ci/status/build/manual.rb
+++ b/lib/gitlab/ci/status/build/manual.rb
@@ -12,7 +12,7 @@ module Gitlab
def illustration
{
image: 'illustrations/manual_action.svg',
- size: 'svg-394',
+ size: 'svg-content svg-394',
title: _('This job requires a manual action'),
content: illustration_content
}
diff --git a/lib/gitlab/ci/status/build/pending.rb b/lib/gitlab/ci/status/build/pending.rb
index 95f668295dd..c520a6722b2 100644
--- a/lib/gitlab/ci/status/build/pending.rb
+++ b/lib/gitlab/ci/status/build/pending.rb
@@ -7,8 +7,8 @@ module Gitlab
class Pending < Status::Extended
def illustration
{
- image: 'illustrations/pending_job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-pending-md.svg',
+ size: '',
title: _('This job has not started yet'),
content: _('This job is in pending state and is waiting to be picked by a runner')
}
diff --git a/lib/gitlab/ci/status/build/preparing.rb b/lib/gitlab/ci/status/build/preparing.rb
index 1fddcb05f79..6ed40c77934 100644
--- a/lib/gitlab/ci/status/build/preparing.rb
+++ b/lib/gitlab/ci/status/build/preparing.rb
@@ -11,8 +11,8 @@ module Gitlab
#
def illustration
{
- image: 'illustrations/job_not_triggered.svg',
- size: 'svg-306',
+ image: 'illustrations/empty-state/empty-job-not-triggered-md.svg',
+ size: '',
title: _('This job is preparing to start'),
content: _('This job is performing tasks that must complete before it can start')
}
diff --git a/lib/gitlab/ci/status/build/scheduled.rb b/lib/gitlab/ci/status/build/scheduled.rb
index 0a09dbe5f42..7eca3db525a 100644
--- a/lib/gitlab/ci/status/build/scheduled.rb
+++ b/lib/gitlab/ci/status/build/scheduled.rb
@@ -7,8 +7,8 @@ module Gitlab
class Scheduled < Status::Extended
def illustration
{
- image: 'illustrations/illustrations_scheduled-job_countdown.svg',
- size: 'svg-394',
+ image: 'illustrations/empty-state/empty-job-scheduled-md.svg',
+ size: '',
title: _("This is a delayed job to run in %{remainingTime}"),
content: _("This job will automatically run after its timer finishes. " \
"Often they are used for incremental roll-out deploys " \
diff --git a/lib/gitlab/ci/status/build/skipped.rb b/lib/gitlab/ci/status/build/skipped.rb
index 4fe2f7b3114..9142df3901f 100644
--- a/lib/gitlab/ci/status/build/skipped.rb
+++ b/lib/gitlab/ci/status/build/skipped.rb
@@ -7,8 +7,8 @@ module Gitlab
class Skipped < Status::Extended
def illustration
{
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: '',
title: _('This job has been skipped')
}
end
diff --git a/lib/gitlab/ci/status/processable/waiting_for_resource.rb b/lib/gitlab/ci/status/processable/waiting_for_resource.rb
index ac82c99b5f1..2cf25c10648 100644
--- a/lib/gitlab/ci/status/processable/waiting_for_resource.rb
+++ b/lib/gitlab/ci/status/processable/waiting_for_resource.rb
@@ -11,8 +11,8 @@ module Gitlab
#
def illustration
{
- image: 'illustrations/pending_job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-pending-md.svg',
+ size: '',
title: _('This job is waiting for resource: ') + subject.resource_group.key
}
end
diff --git a/lib/gitlab/internal_events.rb b/lib/gitlab/internal_events.rb
index eb2ba3449fb..12609e9be35 100644
--- a/lib/gitlab/internal_events.rb
+++ b/lib/gitlab/internal_events.rb
@@ -10,7 +10,7 @@ module Gitlab
include Gitlab::Tracking::Helpers
include Gitlab::Utils::StrongMemoize
- def track_event(event_name, send_snowplow_event: true, **kwargs)
+ def track_event(event_name, category: nil, send_snowplow_event: true, **kwargs)
raise UnknownEventError, "Unknown event: #{event_name}" unless EventDefinitions.known_event?(event_name)
validate_property!(kwargs, :user, User)
@@ -23,7 +23,7 @@ module Gitlab
increase_total_counter(event_name)
increase_weekly_total_counter(event_name)
update_unique_counter(event_name, kwargs)
- trigger_snowplow_event(event_name, kwargs) if send_snowplow_event
+ trigger_snowplow_event(event_name, category, kwargs) if send_snowplow_event
if Feature.enabled?(:internal_events_for_product_analytics)
send_application_instrumentation_event(event_name, kwargs)
@@ -76,7 +76,7 @@ module Gitlab
UsageDataCounters::HLLRedisCounter.track_event(event_name, values: unique_value)
end
- def trigger_snowplow_event(event_name, kwargs)
+ def trigger_snowplow_event(event_name, category, kwargs)
user = kwargs[:user]
project = kwargs[:project]
namespace = kwargs[:namespace]
@@ -93,11 +93,11 @@ module Gitlab
event: event_name
).to_context
- track_struct_event(event_name, contexts: [standard_context, service_ping_context])
+ track_struct_event(event_name, category, contexts: [standard_context, service_ping_context])
end
- def track_struct_event(event_name, contexts:)
- category = 'InternalEventTracking'
+ def track_struct_event(event_name, category, contexts:)
+ category ||= 'InternalEventTracking'
tracker = Gitlab::Tracking.tracker
tracker.event(category, event_name, context: contexts)
rescue StandardError => error
diff --git a/qa/qa/specs/features/api/9_data_stores/user_inherited_access_spec.rb b/qa/qa/specs/features/api/9_data_stores/user_inherited_access_spec.rb
index 03a1d4f0c88..5f521037bfa 100644
--- a/qa/qa/specs/features/api/9_data_stores/user_inherited_access_spec.rb
+++ b/qa/qa/specs/features/api/9_data_stores/user_inherited_access_spec.rb
@@ -132,6 +132,7 @@ module QA
it(
'is not allowed to create a file in parent group project via the API',
+ :reliable,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/363343'
) do
expect do
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/group/group_member_access_request_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/group/group_member_access_request_spec.rb
index 8d29681f262..4786e2cc853 100644
--- a/qa/qa/specs/features/browser_ui/9_data_stores/group/group_member_access_request_spec.rb
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/group/group_member_access_request_spec.rb
@@ -29,7 +29,7 @@ module QA
user&.remove_via_api!
end
- it 'generates a todo item for the group owner',
+ it 'generates a todo item for the group owner', :reliable,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/370132' do
Page::Dashboard::Todos.perform do |todos|
expect(todos).to have_latest_todo_with_author(
@@ -53,7 +53,7 @@ module QA
end
end
- it 'adds user to the group',
+ it 'adds user to the group', :reliable,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/386792' do
found_member = group.reload!.find_member(user.username)
@@ -70,7 +70,7 @@ module QA
end
end
- it 'does not add user to the group',
+ it 'does not add user to the group', :reliable,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/386793' do
found_member = group.reload!.find_member(user.username)
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/group/transfer_group_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/group/transfer_group_spec.rb
index 41e6723d300..116fddac231 100644
--- a/qa/qa/specs/features/browser_ui/9_data_stores/group/transfer_group_spec.rb
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/group/transfer_group_spec.rb
@@ -16,7 +16,7 @@ module QA
sub_group_for_transfer.visit!
end
- it 'transfers a subgroup to another group',
+ it 'transfers a subgroup to another group', :reliable,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347692' do
Page::Group::Menu.perform(&:go_to_general_settings)
Page::Group::Settings::General.perform do |general|
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/user/follow_user_activity_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/user/follow_user_activity_spec.rb
index d7530961253..ff41ba4f8f3 100644
--- a/qa/qa/specs/features/browser_ui/9_data_stores/user/follow_user_activity_spec.rb
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/user/follow_user_activity_spec.rb
@@ -51,7 +51,7 @@ module QA
following_user&.remove_via_api!
end
- it 'can be followed and their activity seen',
+ it 'can be followed and their activity seen', :reliable,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347678' do
Flow::Login.sign_in(as: following_user)
page.visit Runtime::Scenario.gitlab_address + "/#{followed_user.username}"
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/user/user_inherited_access_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/user/user_inherited_access_spec.rb
index 11ad1bb19b8..67c9f1240a8 100644
--- a/qa/qa/specs/features/browser_ui/9_data_stores/user/user_inherited_access_spec.rb
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/user/user_inherited_access_spec.rb
@@ -33,7 +33,7 @@ module QA
end
it(
- 'is allowed to edit the sub-group project files',
+ 'is allowed to edit the sub-group project files', :reliable,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/363467'
) do
Flow::Login.sign_in(as: parent_group_user)
@@ -71,7 +71,7 @@ module QA
end
it(
- 'is not allowed to edit the parent group project files',
+ 'is not allowed to edit the parent group project files', :reliable,
testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/363466'
) do
Flow::Login.sign_in(as: sub_group_user)
diff --git a/scripts/internal_events/monitor.rb b/scripts/internal_events/monitor.rb
index e9ba1dbfbb7..03f17ed257d 100644
--- a/scripts/internal_events/monitor.rb
+++ b/scripts/internal_events/monitor.rb
@@ -59,6 +59,7 @@ def extract_standard_context(event)
next unless context['schema'].start_with?('iglu:com.gitlab/gitlab_standard/jsonschema')
return {
+
user_id: context["data"]["user_id"],
namespace_id: context["data"]["namespace_id"],
project_id: context["data"]["project_id"],
@@ -73,7 +74,7 @@ def generate_snowplow_table
@initial_max_timestamp ||= events.map { |e| e['rawEvent']['parameters']['dtm'].to_i }.max || 0
rows = []
- rows << ['Event Name', 'Collector Timestamp', 'user_id', 'namespace_id', 'project_id', 'plan']
+ rows << ['Event Name', 'Collector Timestamp', 'Category', 'user_id', 'namespace_id', 'project_id', 'plan']
rows << :separator
events.each do |event|
@@ -82,6 +83,7 @@ def generate_snowplow_table
row = [
event['event']['se_action'],
event['event']['collector_tstamp'],
+ event['event']['se_category'],
standard_context[:user_id],
standard_context[:namespace_id],
standard_context[:project_id],
diff --git a/spec/frontend/ci/job_details/components/empty_state_spec.js b/spec/frontend/ci/job_details/components/empty_state_spec.js
index 992ed88e81b..0c2e07526f1 100644
--- a/spec/frontend/ci/job_details/components/empty_state_spec.js
+++ b/spec/frontend/ci/job_details/components/empty_state_spec.js
@@ -7,8 +7,8 @@ describe('Empty State', () => {
let wrapper;
const defaultProps = {
- illustrationPath: 'illustrations/pending_job_empty.svg',
- illustrationSizeClass: 'svg-430',
+ illustrationPath: 'illustrations/empty-state/empty-job-pending-md.svg',
+ illustrationSizeClass: '',
jobId: mockId,
title: 'This job has not started yet',
playable: false,
diff --git a/spec/frontend/ci/jobs_mock_data.js b/spec/frontend/ci/jobs_mock_data.js
index 12833524fd9..4e45c633dfb 100644
--- a/spec/frontend/ci/jobs_mock_data.js
+++ b/spec/frontend/ci/jobs_mock_data.js
@@ -43,8 +43,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/1180',
illustration: {
- image: 'illustrations/pending_job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-pending-md.svg',
+ size: 'svg-content svg-430',
title: 'This job has not started yet',
content: 'This job is in pending state and is waiting to be picked by a runner',
},
@@ -76,8 +76,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/1180',
illustration: {
- image: 'illustrations/pending_job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-pending-md.svg',
+ size: 'svg-content svg-430',
title: 'This job has not started yet',
content: 'This job is in pending state and is waiting to be picked by a runner',
},
@@ -105,8 +105,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/444',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -137,8 +137,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/444',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -246,8 +246,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/445',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -278,8 +278,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/446',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -310,8 +310,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/447',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -338,8 +338,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/452',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -370,8 +370,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/452',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -420,8 +420,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/448',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -452,8 +452,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/449',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -484,8 +484,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/451',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -512,8 +512,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/453',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -544,8 +544,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/453',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -572,8 +572,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/454',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -604,8 +604,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/454',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -654,8 +654,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/457',
illustration: {
- image: 'illustrations/job_not_triggered.svg',
- size: 'svg-306',
+ image: 'illustrations/empty-state/empty-job-not-triggered-md.svg',
+ size: '',
title: 'This job has not been triggered yet',
content:
'This job depends on upstream jobs that need to succeed in order for this job to be triggered',
@@ -688,8 +688,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/457',
illustration: {
- image: 'illustrations/job_not_triggered.svg',
- size: 'svg-306',
+ image: 'illustrations/empty-state/empty-job-not-triggered-md.svg',
+ size: '',
title: 'This job has not been triggered yet',
content:
'This job depends on upstream jobs that need to succeed in order for this job to be triggered',
@@ -718,8 +718,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/455',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -750,8 +750,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/455',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -778,8 +778,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/456',
illustration: {
- image: 'illustrations/job_not_triggered.svg',
- size: 'svg-306',
+ image: 'illustrations/empty-state/empty-job-not-triggered-md.svg',
+ size: '',
title: 'This job has not been triggered yet',
content:
'This job depends on upstream jobs that need to succeed in order for this job to be triggered',
@@ -812,8 +812,8 @@ export const stages = [
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/456',
illustration: {
- image: 'illustrations/job_not_triggered.svg',
- size: 'svg-306',
+ image: 'illustrations/empty-state/empty-job-not-triggered-md.svg',
+ size: '',
title: 'This job has not been triggered yet',
content:
'This job depends on upstream jobs that need to succeed in order for this job to be triggered',
@@ -863,7 +863,7 @@ export const stages = [
details_path: '/gitlab-org/gitlab-shell/-/jobs/458',
illustration: {
image: 'illustrations/manual_action.svg',
- size: 'svg-394',
+ size: 'svg-content svg-394',
title: 'This job requires a manual action',
content:
'This job depends on a user to trigger its process. Often they are used to deploy code to production environments',
@@ -897,7 +897,7 @@ export const stages = [
details_path: '/gitlab-org/gitlab-shell/-/jobs/458',
illustration: {
image: 'illustrations/manual_action.svg',
- size: 'svg-394',
+ size: 'svg-content svg-394',
title: 'This job requires a manual action',
content:
'This job depends on a user to trigger its process. Often they are used to deploy code to production environments',
@@ -1117,8 +1117,8 @@ export const failedJobStatus = {
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/454',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -1153,8 +1153,8 @@ export const jobsInStage = {
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/1180',
illustration: {
- image: 'illustrations/pending_job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-pending-md.svg',
+ size: 'svg-content svg-430',
title: 'This job has not started yet',
content: 'This job is in pending state and is waiting to be picked by a runner',
},
@@ -1186,8 +1186,8 @@ export const jobsInStage = {
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/444',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
@@ -1220,8 +1220,8 @@ export const jobsInStage = {
has_details: true,
details_path: '/gitlab-org/gitlab-shell/-/jobs/443',
illustration: {
- image: 'illustrations/skipped-job_empty.svg',
- size: 'svg-430',
+ image: 'illustrations/empty-state/empty-job-skipped-md.svg',
+ size: 'svg-content svg-430',
title: 'This job does not have a trace.',
},
favicon:
diff --git a/spec/frontend/ci/pipeline_details/linked_pipelines_mock.json b/spec/frontend/ci/pipeline_details/linked_pipelines_mock.json
index a68283032d2..b5d7b594391 100644
--- a/spec/frontend/ci/pipeline_details/linked_pipelines_mock.json
+++ b/spec/frontend/ci/pipeline_details/linked_pipelines_mock.json
@@ -58,7 +58,7 @@
"details_path": "/gitlab-org/gitlab-runner/-/jobs/72469032",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -94,7 +94,7 @@
"details_path": "/gitlab-org/gitlab-runner/-/jobs/72469032",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -141,8 +141,8 @@
"has_details": true,
"details_path": "/gitlab-org/gitlab-runner/-/jobs/72469033",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -175,8 +175,8 @@
"has_details": true,
"details_path": "/gitlab-org/gitlab-runner/-/jobs/72469033",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -223,7 +223,7 @@
"details_path": "/gitlab-org/gitlab-runner/-/jobs/72469034",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -258,7 +258,7 @@
"details_path": "/gitlab-org/gitlab-runner/-/jobs/72469034",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -398,7 +398,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982853",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -433,7 +433,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982853",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -462,7 +462,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982854",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -497,7 +497,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982854",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -526,7 +526,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982855",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -561,7 +561,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982855",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -608,8 +608,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114984694",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png",
@@ -642,8 +642,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114984694",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png",
@@ -690,8 +690,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982857",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -716,8 +716,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982857",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -737,8 +737,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982858",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -763,8 +763,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982858",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -875,7 +875,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982853",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -910,7 +910,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982853",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -939,7 +939,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982854",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -974,7 +974,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982854",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1003,7 +1003,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982855",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1038,7 +1038,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982855",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1085,8 +1085,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114984694",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png",
@@ -1119,8 +1119,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114984694",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png",
@@ -1167,8 +1167,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982857",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -1193,8 +1193,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982857",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -1214,8 +1214,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982858",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -1240,8 +1240,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982858",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -1358,7 +1358,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982853",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1393,7 +1393,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982853",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1422,7 +1422,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982854",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1457,7 +1457,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982854",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1486,7 +1486,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982855",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1521,7 +1521,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982855",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1568,8 +1568,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114984694",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png",
@@ -1602,8 +1602,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114984694",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png",
@@ -1650,8 +1650,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982857",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -1676,8 +1676,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982857",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -1697,8 +1697,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982858",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -1723,8 +1723,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982858",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -1840,7 +1840,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982853",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1875,7 +1875,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982853",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1904,7 +1904,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982854",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1939,7 +1939,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982854",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -1968,7 +1968,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982855",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -2003,7 +2003,7 @@
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982855",
"illustration": {
"image": "https://assets.gitlab-static.net/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -2050,8 +2050,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114984694",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png",
@@ -2084,8 +2084,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114984694",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png",
@@ -2132,8 +2132,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982857",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -2158,8 +2158,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982857",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -2179,8 +2179,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982858",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -2205,8 +2205,8 @@
"has_details": true,
"details_path": "/gitlab-com/gitlab-docs/-/jobs/114982858",
"illustration": {
- "image": "https://assets.gitlab-static.net/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "https://assets.gitlab-static.net/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "https://gitlab.com/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -2320,8 +2320,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/526",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2354,8 +2354,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/526",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2382,8 +2382,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/527",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2416,8 +2416,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/527",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2525,8 +2525,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/528",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2559,8 +2559,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/529",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2593,8 +2593,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/530",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2621,8 +2621,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/535",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2655,8 +2655,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/535",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2706,8 +2706,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/531",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2740,8 +2740,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/532",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2774,8 +2774,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/534",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2802,8 +2802,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/536",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2836,8 +2836,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/536",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2864,8 +2864,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/537",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png",
@@ -2898,8 +2898,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/537",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_failed-41304d7f7e3828808b0c26771f0309e55296819a9beea3ea9fbf6689d9857c12.png",
@@ -2947,8 +2947,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/541",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -2981,8 +2981,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/541",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -3009,8 +3009,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/538",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -3043,8 +3043,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/538",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -3071,8 +3071,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/540",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -3105,8 +3105,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/540",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -3133,8 +3133,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/539",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -3167,8 +3167,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/539",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -3214,8 +3214,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/544",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -3240,8 +3240,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/544",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -3261,8 +3261,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/542",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -3295,8 +3295,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/542",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job does not have a trace."
},
"favicon": "/assets/ci_favicons/favicon_status_success-8451333011eee8ce9f2ab25dc487fe24a8758c694827a582f17f42b0a90446a2.png",
@@ -3323,8 +3323,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/543",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -3349,8 +3349,8 @@
"has_details": true,
"details_path": "/h5bp/html5-boilerplate/-/jobs/543",
"illustration": {
- "image": "/assets/illustrations/skipped-job_empty-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
- "size": "svg-430",
+ "image": "/assets/illustrations/empty-state/empty-job-skipped-md-8b877955fbf175e42ae65b6cb95346e15282c6fc5b682756c329af3a0055225e.svg",
+ "size": "",
"title": "This job has been skipped"
},
"favicon": "/assets/ci_favicons/favicon_status_skipped-0b9c5e543588945e8c4ca57786bbf2d0c56631959c9f853300392d0315be829b.png"
@@ -3390,7 +3390,7 @@
"details_path": "/h5bp/html5-boilerplate/-/jobs/545",
"illustration": {
"image": "/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
@@ -3426,7 +3426,7 @@
"details_path": "/h5bp/html5-boilerplate/-/jobs/545",
"illustration": {
"image": "/assets/illustrations/manual_action-2b4ca0d1bcfd92aebf33d484e36cbf7a102d007f76b5a0cfea636033a629d601.svg",
- "size": "svg-394",
+ "size": "svg-content svg-394",
"title": "This job requires a manual action",
"content": "This job depends on a user to trigger its process. Often they are used to deploy code to production environments"
},
diff --git a/spec/frontend/ci/pipeline_details/mock_data.js b/spec/frontend/ci/pipeline_details/mock_data.js
index 48570b2515f..ea38da4fb21 100644
--- a/spec/frontend/ci/pipeline_details/mock_data.js
+++ b/spec/frontend/ci/pipeline_details/mock_data.js
@@ -842,8 +842,8 @@ export const mockPipelineTag = () => {
details_path: '/root/mr-widgets/-/jobs/1696',
illustration: {
image:
- '/assets/illustrations/skipped-job_empty-29a8a37d8a61d1b6f68cf3484f9024e53cd6eb95e28eae3554f8011a1146bf27.svg',
- size: 'svg-430',
+ '/assets/illustrations/empty-state/empty-job-skipped-md-29a8a37d8a61d1b6f68cf3484f9024e53cd6eb95e28eae3554f8011a1146bf27.svg',
+ size: '',
title: 'This job does not have a trace.',
},
favicon:
@@ -1049,8 +1049,8 @@ export const mockPipelineBranch = () => {
details_path: '/root/mr-widgets/-/jobs/1260',
illustration: {
image:
- '/assets/illustrations/skipped-job_empty-29a8a37d8a61d1b6f68cf3484f9024e53cd6eb95e28eae3554f8011a1146bf27.svg',
- size: 'svg-430',
+ '/assets/illustrations/empty-state/empty-job-skipped-md-29a8a37d8a61d1b6f68cf3484f9024e53cd6eb95e28eae3554f8011a1146bf27.svg',
+ size: '',
title: 'This job does not have a trace.',
},
favicon:
diff --git a/spec/frontend/environments/graphql/mock_data.js b/spec/frontend/environments/graphql/mock_data.js
index efc63a80e89..dcbce987523 100644
--- a/spec/frontend/environments/graphql/mock_data.js
+++ b/spec/frontend/environments/graphql/mock_data.js
@@ -154,7 +154,7 @@ export const environmentsApp = {
illustration: {
image:
'/assets/illustrations/manual_action-c55aee2c5f9ebe9f72751480af8bb307be1a6f35552f344cc6d1bf979d3422f6.svg',
- size: 'svg-394',
+ size: 'svg-content svg-394',
title: 'This job requires a manual action',
content:
'This job requires manual intervention to start. Before starting this job, you can add variables below for last-minute configuration changes.',
@@ -363,7 +363,7 @@ export const resolvedEnvironmentsApp = {
illustration: {
image:
'/assets/illustrations/manual_action-c55aee2c5f9ebe9f72751480af8bb307be1a6f35552f344cc6d1bf979d3422f6.svg',
- size: 'svg-394',
+ size: 'svg-content svg-394',
title: 'This job requires a manual action',
content:
'This job requires manual intervention to start. Before starting this job, you can add variables below for last-minute configuration changes.',
@@ -593,8 +593,8 @@ export const resolvedEnvironment = {
detailsPath: '/h5bp/html5-boilerplate/-/jobs/1014',
illustration: {
image:
- '/assets/illustrations/skipped-job_empty-29a8a37d8a61d1b6f68cf3484f9024e53cd6eb95e28eae3554f8011a1146bf27.svg',
- size: 'svg-430',
+ '/assets/illustrations/empty-state/empty-job-skipped-md-29a8a37d8a61d1b6f68cf3484f9024e53cd6eb95e28eae3554f8011a1146bf27.svg',
+ size: '',
title: 'This job does not have a trace.',
},
favicon:
@@ -665,7 +665,7 @@ export const resolvedEnvironment = {
illustration: {
image:
'/assets/illustrations/manual_action-c55aee2c5f9ebe9f72751480af8bb307be1a6f35552f344cc6d1bf979d3422f6.svg',
- size: 'svg-394',
+ size: 'svg-content svg-394',
title: 'This job requires a manual action',
content:
'This job requires manual intervention to start. Before starting this job, you can add variables below for last-minute configuration changes.',
@@ -992,8 +992,8 @@ export const resolvedEnvironmentToRollback = {
icon: 'status_success',
illustration: {
image:
- '/assets/illustrations/skipped-job_empty-29a8a37d8a61d1b6f68cf3484f9024e53cd6eb95e28eae3554f8011a1146bf27.svg',
- size: 'svg-430',
+ '/assets/illustrations/empty-state/empty-job-skipped-md-29a8a37d8a61d1b6f68cf3484f9024e53cd6eb95e28eae3554f8011a1146bf27.svg',
+ size: '',
title: 'This job does not have a trace.',
},
label: 'passed',
@@ -1058,7 +1058,7 @@ export const resolvedEnvironmentToRollback = {
illustration: {
image:
'/assets/illustrations/manual_action-c55aee2c5f9ebe9f72751480af8bb307be1a6f35552f344cc6d1bf979d3422f6.svg',
- size: 'svg-394',
+ size: 'svg-content svg-394',
title: 'This job requires a manual action',
content:
'This job requires manual intervention to start. Before starting this job, you can add variables below for last-minute configuration changes.',
diff --git a/spec/frontend/environments/mock_data.js b/spec/frontend/environments/mock_data.js
index bd2c6b7c892..0efc2fb10ab 100644
--- a/spec/frontend/environments/mock_data.js
+++ b/spec/frontend/environments/mock_data.js
@@ -172,8 +172,8 @@ const environment = {
details_path: '/root/environment-test/-/jobs/892',
illustration: {
image:
- '/assets/illustrations/skipped-job_empty-29a8a37d8a61d1b6f68cf3484f9024e53cd6eb95e28eae3554f8011a1146bf27.svg',
- size: 'svg-430',
+ '/assets/illustrations/empty-state/empty-job-skipped-md-29a8a37d8a61d1b6f68cf3484f9024e53cd6eb95e28eae3554f8011a1146bf27.svg',
+ size: '',
title: 'This job does not have a trace.',
},
favicon:
diff --git a/spec/lib/gitlab/internal_events_spec.rb b/spec/lib/gitlab/internal_events_spec.rb
index 7ac583b24ce..4e475cf9a1d 100644
--- a/spec/lib/gitlab/internal_events_spec.rb
+++ b/spec/lib/gitlab/internal_events_spec.rb
@@ -51,8 +51,8 @@ RSpec.describe Gitlab::InternalEvents, :snowplow, feature_category: :product_ana
expect(SnowplowTracker::SelfDescribingJson).to have_received(:new)
.with(service_ping_context[:schema], service_ping_context[:data]).at_least(:once)
- expect(fake_snowplow).to have_received(:event) do |category, provided_event_name, args|
- expect(category).to eq('InternalEventTracking')
+ expect(fake_snowplow).to have_received(:event) do |provided_category, provided_event_name, args|
+ expect(provided_category).to eq(category)
expect(provided_event_name).to eq(event_name)
contexts = args[:context]&.map(&:to_json)
@@ -92,6 +92,7 @@ RSpec.describe Gitlab::InternalEvents, :snowplow, feature_category: :product_ana
let(:redis) { instance_double('Redis') }
let(:fake_snowplow) { instance_double(Gitlab::Tracking::Destinations::Snowplow) }
let(:event_name) { 'g_edit_by_web_ide' }
+ let(:category) { 'InternalEventTracking' }
let(:unique_property) { :user }
let(:unique_value) { user.id }
let(:redis_arguments) { [event_name, Date.today.strftime('%G-%V')] }
@@ -134,6 +135,16 @@ RSpec.describe Gitlab::InternalEvents, :snowplow, feature_category: :product_ana
end
end
+ context 'when category is passed' do
+ let(:category) { 'SomeCategory' }
+
+ it 'is sent to Snowplow' do
+ described_class.track_event(event_name, category: category, user: user, project: project)
+
+ expect_snowplow_tracking
+ end
+ end
+
context 'when arguments are invalid' do
context 'when user is not an instance of User' do
let(:user) { 'a_string' }