-import { GlLink, GlCard, GlIcon } from '@gitlab/ui';
-import { s__ } from '~/locale';
-
-export default {
- name: 'LearnGitlabInfoCard',
- components: { GlLink, GlCard, GlIcon },
- i18n: {
- trial: s__('Learn GitLab|Trial only'),
- },
- props: {
- title: {
- required: true,
- type: String,
- },
- description: {
- required: true,
- type: String,
- },
- actionLabel: {
- required: true,
- type: String,
- },
- url: {
- required: true,
- type: String,
- },
- completed: {
- required: true,
- type: Boolean,
- },
- svg: {
- required: true,
- type: String,
- },
- trialRequired: {
- default: false,
- required: false,
- type: Boolean,
- },
- },
-};
-
-
-
-
-
- {{ $options.i18n.trial }}
-
-
-
![]()
-
{{ title }}
-
{{ description }}
-
-
-
-
diff --git a/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_section_link.vue b/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_section_link.vue
index 1912477758b..4eab0cccb06 100644
--- a/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_section_link.vue
+++ b/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_section_link.vue
@@ -6,6 +6,7 @@ import { isExperimentVariant } from '~/experimentation/utils';
import eventHub from '~/invite_members/event_hub';
import { s__, __ } from '~/locale';
import { ACTION_LABELS } from '../constants';
+import IncludedInTrialIndicator from './included_in_trial_indicator.vue';
export default {
name: 'LearnGitlabSectionLink',
@@ -15,12 +16,12 @@ export default {
GlButton,
GlPopover,
GitlabExperiment,
+ IncludedInTrialIndicator,
},
directives: {
GlTooltip,
},
i18n: {
- trialOnly: s__('LearnGitlab|Trial only'),
contactAdmin: s__('LearnGitlab|Contact your administrator to start a free Ultimate trial.'),
viewAdminList: s__('LearnGitlab|View administrator list'),
watchHow: __('Watch how'),
@@ -41,12 +42,6 @@ export default {
};
},
computed: {
- linkTitle() {
- return ACTION_LABELS[this.action].title;
- },
- trialOnly() {
- return ACTION_LABELS[this.action].trialRequired;
- },
showInviteModalLink() {
return (
this.action === 'userAdded' && isExperimentVariant('invite_for_help_continuous_onboarding')
@@ -55,49 +50,51 @@ export default {
openInNewTab() {
return ACTION_LABELS[this.action]?.openInNewTab === true || this.value.openInNewTab === true;
},
- linkToVideoTutorial() {
- return ACTION_LABELS[this.action].videoTutorial;
- },
},
methods: {
openModal() {
eventHub.$emit('openModal', { source: 'learn_gitlab' });
},
+ actionLabelValue(value) {
+ return ACTION_LABELS[this.action][value];
+ },
},
};
-
- {{ $options.i18n.trialOnly }}
-
- {{ linkTitle }}
+ {{ actionLabelValue('title') }}
+
-
- {{ linkTitle }}
-
-
- {{ linkTitle }}
-
+
+ {{ actionLabelValue('title') }}
+
+
+
+
+ {{ actionLabelValue('title') }}
+
+
+
- {{ linkTitle }}
+ {{ actionLabelValue('title') }}
diff --git a/app/assets/javascripts/pages/projects/learn_gitlab/constants/index.js b/app/assets/javascripts/pages/projects/learn_gitlab/constants/index.js
index 05bacd9b350..cb1a0302d91 100644
--- a/app/assets/javascripts/pages/projects/learn_gitlab/constants/index.js
+++ b/app/assets/javascripts/pages/projects/learn_gitlab/constants/index.js
@@ -2,9 +2,10 @@ import { s__ } from '~/locale';
export const ACTION_LABELS = {
gitWrite: {
- title: s__('LearnGitLab|Create or import a repository'),
- actionLabel: s__('LearnGitLab|Create or import a repository'),
+ title: s__('LearnGitLab|Create a repository'),
+ actionLabel: s__('LearnGitLab|Create a repository'),
description: s__('LearnGitLab|Create or import your first repository into your new project.'),
+ trackLabel: 'create_a_repository',
section: 'workspace',
position: 1,
},
@@ -14,20 +15,23 @@ export const ACTION_LABELS = {
description: s__(
'LearnGitLab|GitLab works best as a team. Invite your colleague to enjoy all features.',
),
+ trackLabel: 'invite_your_colleagues',
section: 'workspace',
position: 0,
},
pipelineCreated: {
- title: s__('LearnGitLab|Set up CI/CD'),
- actionLabel: s__('LearnGitLab|Set-up CI/CD'),
+ title: s__("LearnGitLab|Set up your first project's CI/CD"),
+ actionLabel: s__('LearnGitLab|Set up CI/CD'),
description: s__('LearnGitLab|Save time by automating your integration and deployment tasks.'),
+ trackLabel: 'set_up_your_first_project_s_ci_cd',
section: 'workspace',
position: 2,
},
trialStarted: {
- title: s__('LearnGitLab|Start a free Ultimate trial'),
+ title: s__('LearnGitLab|Start a free trial of GitLab Ultimate'),
actionLabel: s__('LearnGitLab|Try GitLab Ultimate for free'),
description: s__('LearnGitLab|Try all GitLab features for 30 days, no credit card required.'),
+ trackLabel: 'start_a_free_trial_of_gitlab_ultimate',
section: 'workspace',
position: 3,
openInNewTab: true,
@@ -38,6 +42,7 @@ export const ACTION_LABELS = {
description: s__(
'LearnGitLab|Prevent unexpected changes to important assets by assigning ownership of files and paths.',
),
+ trackLabel: 'add_code_owners',
trialRequired: true,
section: 'workspace',
position: 4,
@@ -45,9 +50,10 @@ export const ACTION_LABELS = {
videoTutorial: 'https://vimeo.com/670896787',
},
requiredMrApprovalsEnabled: {
- title: s__('LearnGitLab|Add merge request approval'),
+ title: s__('LearnGitLab|Enable require merge approvals'),
actionLabel: s__('LearnGitLab|Enable require merge approvals'),
description: s__('LearnGitLab|Route code reviews to the right reviewers, every time.'),
+ trackLabel: 'enable_require_merge_approvals',
trialRequired: true,
section: 'workspace',
position: 5,
@@ -55,28 +61,52 @@ export const ACTION_LABELS = {
videoTutorial: 'https://vimeo.com/670904904',
},
mergeRequestCreated: {
- title: s__('LearnGitLab|Submit a merge request'),
+ title: s__('LearnGitLab|Submit a merge request (MR)'),
actionLabel: s__('LearnGitLab|Submit a merge request (MR)'),
description: s__('LearnGitLab|Review and edit proposed changes to source code.'),
+ trackLabel: 'submit_a_merge_request_mr',
section: 'plan',
position: 1,
},
- securityScanEnabled: {
- title: s__('LearnGitLab|Run a Security scan using CI/CD'),
- actionLabel: s__('LearnGitLab|Run a Security scan using CI/CD'),
- description: s__('LearnGitLab|Scan your code to uncover vulnerabilities before deploying.'),
- section: 'deploy',
- position: 1,
- },
issueCreated: {
title: s__('LearnGitLab|Create an issue'),
actionLabel: s__('LearnGitLab|Create an issue'),
description: s__(
'LearnGitLab|Create/import issues (tickets) to collaborate on ideas and plan work.',
),
+ trackLabel: 'create_an_issue',
section: 'plan',
position: 0,
},
+ securityScanEnabled: {
+ title: s__('LearnGitLab|Run a Security scan using CI/CD'),
+ actionLabel: s__('LearnGitLab|Run a Security scan using CI/CD'),
+ description: s__('LearnGitLab|Scan your code to uncover vulnerabilities before deploying.'),
+ trackLabel: 'run_a_security_scan_using_ci_cd',
+ section: 'deploy',
+ position: 1,
+ },
+ licenseScanningRun: {
+ title: s__('LearnGitLab|Scan dependencies for licenses'),
+ trackLabel: 'scan_dependencies_for_licenses',
+ trialRequired: true,
+ section: 'deploy',
+ position: 2,
+ },
+ secureDependencyScanningRun: {
+ title: s__('LearnGitLab|Scan dependencies for vulnerabilities'),
+ trackLabel: 'scan_dependencies_for_vulnerabilities',
+ trialRequired: true,
+ section: 'deploy',
+ position: 3,
+ },
+ secureDastRun: {
+ title: s__('LearnGitLab|Analyze your application for vulnerabilities with DAST'),
+ trackLabel: 'analyze_your_application_for_vulnerabilities_with_dast',
+ trialRequired: true,
+ section: 'deploy',
+ position: 4,
+ },
};
export const ACTION_SECTIONS = {
diff --git a/app/assets/javascripts/pipelines/components/test_reports/test_reports.vue b/app/assets/javascripts/pipelines/components/test_reports/test_reports.vue
index 58d072b0005..3fb46a4f128 100644
--- a/app/assets/javascripts/pipelines/components/test_reports/test_reports.vue
+++ b/app/assets/javascripts/pipelines/components/test_reports/test_reports.vue
@@ -1,6 +1,7 @@