summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab/ci/review.gitlab-ci.yml2
-rw-r--r--README.md4
-rw-r--r--app/assets/javascripts/analytics/cycle_analytics/mixins/add_stage_mixin.js11
-rw-r--r--app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js10
-rw-r--r--app/assets/javascripts/ide/stores/modules/commit/actions.js16
-rw-r--r--app/assets/javascripts/monitoring/components/charts/time_series.vue15
-rw-r--r--app/helpers/submodule_helper.rb2
-rw-r--r--app/mailers/emails/issues.rb4
-rw-r--r--app/mailers/emails/members.rb16
-rw-r--r--app/mailers/emails/merge_requests.rb2
-rw-r--r--app/mailers/emails/notes.rb2
-rw-r--r--app/mailers/emails/pages_domains.rb8
-rw-r--r--app/mailers/emails/projects.rb10
-rw-r--r--app/mailers/emails/remote_mirrors.rb3
-rw-r--r--app/mailers/notify.rb14
-rw-r--r--app/models/project.rb1
-rw-r--r--app/services/issues/zoom_link_service.rb12
-rw-r--r--app/services/projects/fork_service.rb1
-rw-r--r--app/views/layouts/nav/_dashboard.html.haml4
-rw-r--r--changelogs/unreleased/30217-refactor-email-notification-code.yml5
-rw-r--r--changelogs/unreleased/30881-webide-mr-confirmation.yml6
-rw-r--r--changelogs/unreleased/32133-remove-feature-flag-for-zoom.yml5
-rw-r--r--changelogs/unreleased/fork_gitlab_ci.yml5
-rw-r--r--changelogs/unreleased/internationalization-time-series-wrapper.yml5
-rw-r--r--changelogs/unreleased/issue_11241.yml5
-rw-r--r--doc/api/epics.md8
-rw-r--r--doc/user/project/quick_actions.md4
-rw-r--r--locale/gitlab.pot8
-rw-r--r--qa/knapsack/gitlab-ce/review-qa-all_master_report.json42
-rw-r--r--qa/knapsack/master_report.json (renamed from qa/qa/ce/knapsack/nightly_master_report.json)8
-rw-r--r--qa/qa/page/main/menu.rb12
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb2
-rw-r--r--spec/helpers/application_helper_spec.rb2
-rw-r--r--spec/helpers/auto_devops_helper_spec.rb2
-rw-r--r--spec/helpers/avatars_helper_spec.rb2
-rw-r--r--spec/helpers/award_emoji_helper_spec.rb2
-rw-r--r--spec/helpers/blame_helper_spec.rb2
-rw-r--r--spec/helpers/blob_helper_spec.rb2
-rw-r--r--spec/helpers/boards_helper_spec.rb2
-rw-r--r--spec/helpers/broadcast_messages_helper_spec.rb2
-rw-r--r--spec/helpers/button_helper_spec.rb2
-rw-r--r--spec/helpers/calendar_helper_spec.rb2
-rw-r--r--spec/helpers/ci_status_helper_spec.rb2
-rw-r--r--spec/helpers/commits_helper_spec.rb2
-rw-r--r--spec/helpers/components_helper_spec.rb2
-rw-r--r--spec/helpers/dashboard_helper_spec.rb2
-rw-r--r--spec/helpers/defer_script_tag_helper_spec.rb2
-rw-r--r--spec/helpers/emails_helper_spec.rb2
-rw-r--r--spec/helpers/events_helper_spec.rb2
-rw-r--r--spec/helpers/explore_helper_spec.rb2
-rw-r--r--spec/helpers/form_helper_spec.rb2
-rw-r--r--spec/helpers/git_helper_spec.rb2
-rw-r--r--spec/helpers/gitlab_routing_helper_spec.rb2
-rw-r--r--spec/helpers/graph_helper_spec.rb2
-rw-r--r--spec/helpers/hooks_helper_spec.rb2
-rw-r--r--spec/helpers/icons_helper_spec.rb2
-rw-r--r--spec/helpers/import_helper_spec.rb2
-rw-r--r--spec/helpers/instance_configuration_helper_spec.rb2
-rw-r--r--spec/helpers/issues_helper_spec.rb2
-rw-r--r--spec/helpers/labels_helper_spec.rb2
-rw-r--r--spec/helpers/markup_helper_spec.rb8
-rw-r--r--spec/helpers/members_helper_spec.rb2
-rw-r--r--spec/helpers/milestones_helper_spec.rb2
-rw-r--r--spec/helpers/milestones_routing_helper_spec.rb2
-rw-r--r--spec/helpers/namespaces_helper_spec.rb2
-rw-r--r--spec/helpers/nav_helper_spec.rb2
-rw-r--r--spec/helpers/notes_helper_spec.rb2
-rw-r--r--spec/helpers/notifications_helper_spec.rb2
-rw-r--r--spec/helpers/page_layout_helper_spec.rb2
-rw-r--r--spec/helpers/pagination_helper_spec.rb2
-rw-r--r--spec/helpers/preferences_helper_spec.rb2
-rw-r--r--spec/helpers/profiles_helper_spec.rb2
-rw-r--r--spec/helpers/rss_helper_spec.rb2
-rw-r--r--spec/helpers/runners_helper_spec.rb2
-rw-r--r--spec/helpers/search_helper_spec.rb2
-rw-r--r--spec/helpers/sidekiq_helper_spec.rb2
-rw-r--r--spec/helpers/snippets_helper_spec.rb2
-rw-r--r--spec/helpers/storage_helper_spec.rb2
-rw-r--r--spec/helpers/submodule_helper_spec.rb2
-rw-r--r--spec/helpers/tab_helper_spec.rb2
-rw-r--r--spec/helpers/time_helper_spec.rb2
-rw-r--r--spec/helpers/todos_helper_spec.rb2
-rw-r--r--spec/helpers/tree_helper_spec.rb2
-rw-r--r--spec/helpers/user_callouts_helper_spec.rb2
-rw-r--r--spec/helpers/users_helper_spec.rb2
-rw-r--r--spec/helpers/version_check_helper_spec.rb2
-rw-r--r--spec/helpers/visibility_level_helper_spec.rb2
-rw-r--r--spec/helpers/wiki_helper_spec.rb2
-rw-r--r--spec/javascripts/ide/stores/modules/commit/actions_spec.js14
-rw-r--r--spec/javascripts/monitoring/charts/time_series_spec.js12
-rw-r--r--spec/lib/gitlab/import_export/all_models.yml1
-rw-r--r--spec/services/issues/zoom_link_service_spec.rb28
-rw-r--r--spec/services/projects/fork_service_spec.rb21
-rw-r--r--spec/support/helpers/gpg_helpers.rb2
-rw-r--r--spec/support/shared_examples/quick_actions/issue/zoom_quick_actions_shared_examples.rb16
95 files changed, 265 insertions, 199 deletions
diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml
index 01e4b1afdb0..610b0678db1 100644
--- a/.gitlab/ci/review.gitlab-ci.yml
+++ b/.gitlab/ci/review.gitlab-ci.yml
@@ -209,7 +209,7 @@ review-qa-all:
when: manual
parallel: 5
script:
- - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/review-qa-all_master_report.json
+ - export KNAPSACK_REPORT_PATH=knapsack/master_report.json
- export KNAPSACK_TEST_FILE_PATTERN=qa/specs/features/**/*_spec.rb
- gitlab-qa Test::Instance::Any "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}" -- --format RspecJunitFormatter --out tmp/rspec-${CI_JOB_ID}.xml --format html --out tmp/rspec.htm --color --format documentation
diff --git a/README.md b/README.md
index 153878c5799..95a2192a375 100644
--- a/README.md
+++ b/README.md
@@ -2,9 +2,9 @@
## Canonical source
-The canonical source of GitLab where development takes place is [hosted on GitLab.com](https://gitlab.com/gitlab-org/gitlab).
+The canonical source of GitLab where all development takes place is [hosted on GitLab.com](https://gitlab.com/gitlab-org/gitlab).
-A FOSS source of GitLab is hosted on a [mirrored, read-only project on GitLab.com](https://gitlab.com/gitlab-org/gitlab-foss/).
+If you wish to clone a copy of GitLab without proprietary code, you can use the read-only mirror of GitLab located at https://gitlab.com/gitlab-org/gitlab-foss/. Please do not submit any issues and/or merge requests to this project.
## Free trial
diff --git a/app/assets/javascripts/analytics/cycle_analytics/mixins/add_stage_mixin.js b/app/assets/javascripts/analytics/cycle_analytics/mixins/add_stage_mixin.js
deleted file mode 100644
index 6a40f1cbc5e..00000000000
--- a/app/assets/javascripts/analytics/cycle_analytics/mixins/add_stage_mixin.js
+++ /dev/null
@@ -1,11 +0,0 @@
-export default {
- data() {
- return {
- isCustomStageForm: false,
- };
- },
- methods: {
- showAddStageForm: () => {},
- hideAddStageForm: () => {},
- },
-};
diff --git a/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js b/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js
index ac903d60089..cd67ba5fab8 100644
--- a/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js
+++ b/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js
@@ -3,7 +3,6 @@ import Vue from 'vue';
import Cookies from 'js-cookie';
import { GlEmptyState } from '@gitlab/ui';
import filterMixins from 'ee_else_ce/analytics/cycle_analytics/mixins/filter_mixins';
-import addStageMixin from 'ee_else_ce/analytics/cycle_analytics/mixins/add_stage_mixin';
import Flash from '../flash';
import { __ } from '~/locale';
import Translate from '../vue_shared/translate';
@@ -44,14 +43,8 @@ export default () => {
DateRangeDropdown: () =>
import('ee_component/analytics/shared/components/date_range_dropdown.vue'),
'stage-nav-item': stageNavItem,
- CustomStageForm: () =>
- import('ee_component/analytics/cycle_analytics/components/custom_stage_form.vue'),
- AddStageButton: () =>
- import('ee_component/analytics/cycle_analytics/components/add_stage_button.vue'),
- CustomStageFormContainer: () =>
- import('ee_component/analytics/cycle_analytics/components/custom_stage_form_container.vue'),
},
- mixins: [filterMixins, addStageMixin],
+ mixins: [filterMixins],
data() {
return {
store: CycleAnalyticsStore,
@@ -131,7 +124,6 @@ export default () => {
return;
}
- this.hideAddStageForm();
this.isLoadingStage = true;
this.store.setStageEvents([], stage);
this.store.setActiveStage(stage);
diff --git a/app/assets/javascripts/ide/stores/modules/commit/actions.js b/app/assets/javascripts/ide/stores/modules/commit/actions.js
index 23caf2d48ed..f767ca92a56 100644
--- a/app/assets/javascripts/ide/stores/modules/commit/actions.js
+++ b/app/assets/javascripts/ide/stores/modules/commit/actions.js
@@ -152,6 +152,14 @@ export const commitChanges = ({ commit, state, getters, dispatch, rootState, roo
branch: getters.branchName,
})
.then(() => {
+ commit(rootTypes.CLEAR_STAGED_CHANGES, null, { root: true });
+
+ commit(rootTypes.CLEAR_REPLACED_FILES, null, { root: true });
+
+ setTimeout(() => {
+ commit(rootTypes.SET_LAST_COMMIT_MSG, '', { root: true });
+ }, 5000);
+
if (state.shouldCreateMR) {
const { currentProject } = rootGetters;
const targetBranch = getters.isCreatingNewBranch
@@ -164,14 +172,6 @@ export const commitChanges = ({ commit, state, getters, dispatch, rootState, roo
{ root: true },
);
}
-
- commit(rootTypes.CLEAR_STAGED_CHANGES, null, { root: true });
-
- commit(rootTypes.CLEAR_REPLACED_FILES, null, { root: true });
-
- setTimeout(() => {
- commit(rootTypes.SET_LAST_COMMIT_MSG, '', { root: true });
- }, 5000);
})
.then(() => {
if (rootGetters.lastOpenedFile) {
diff --git a/app/assets/javascripts/monitoring/components/charts/time_series.vue b/app/assets/javascripts/monitoring/components/charts/time_series.vue
index 64d0a713b13..04aced985c8 100644
--- a/app/assets/javascripts/monitoring/components/charts/time_series.vue
+++ b/app/assets/javascripts/monitoring/components/charts/time_series.vue
@@ -1,5 +1,5 @@
<script>
-import { __ } from '~/locale';
+import { s__, __ } from '~/locale';
import { GlLink, GlButton } from '@gitlab/ui';
import { GlAreaChart, GlLineChart, GlChartSeriesLabel } from '@gitlab/ui/dist/charts';
import dateFormat from 'dateformat';
@@ -52,6 +52,16 @@ export default {
required: false,
default: () => [],
},
+ legendAverageText: {
+ type: String,
+ required: false,
+ default: s__('Metrics|Avg'),
+ },
+ legendMaxText: {
+ type: String,
+ required: false,
+ default: s__('Metrics|Max'),
+ },
},
data() {
return {
@@ -260,7 +270,6 @@ export default {
<slot></slot>
</div>
</div>
-
<component
:is="glChartComponent"
ref="chart"
@@ -271,6 +280,8 @@ export default {
:thresholds="thresholds"
:width="width"
:height="height"
+ :average-text="legendAverageText"
+ :max-text="legendMaxText"
@updated="onChartUpdated"
>
<template v-if="tooltip.isDeployment">
diff --git a/app/helpers/submodule_helper.rb b/app/helpers/submodule_helper.rb
index e683e2959d1..4b83988e8bb 100644
--- a/app/helpers/submodule_helper.rb
+++ b/app/helpers/submodule_helper.rb
@@ -81,7 +81,7 @@ module SubmoduleHelper
end
def relative_self_links(relative_path, commit, project)
- relative_path.rstrip!
+ relative_path = relative_path.rstrip
absolute_project_path = "/" + project.full_path
# Resolve `relative_path` to target path
diff --git a/app/mailers/emails/issues.rb b/app/mailers/emails/issues.rb
index 47d15836da0..3fd865003c1 100644
--- a/app/mailers/emails/issues.rb
+++ b/app/mailers/emails/issues.rb
@@ -85,7 +85,7 @@ module Emails
@project = Project.find(project_id)
@results = results
- mail(to: recipient(@user.id, @project.group), subject: subject('Imported issues')) do |format|
+ mail(to: @user.notification_email_for(@project.group), subject: subject('Imported issues')) do |format|
format.html { render layout: 'mailer' }
format.text { render layout: 'mailer' }
end
@@ -105,7 +105,7 @@ module Emails
def issue_thread_options(sender_id, recipient_id, reason)
{
from: sender(sender_id),
- to: recipient(recipient_id, @project.group),
+ to: User.find(recipient_id).notification_email_for(@project.group),
subject: subject("#{@issue.title} (##{@issue.iid})"),
'X-GitLab-NotificationReason' => reason
}
diff --git a/app/mailers/emails/members.rb b/app/mailers/emails/members.rb
index 76fa7236ab1..ea8032324aa 100644
--- a/app/mailers/emails/members.rb
+++ b/app/mailers/emails/members.rb
@@ -13,7 +13,9 @@ module Emails
@member_source_type = member_source_type
@member_id = member_id
- mail(to: recipient(recipient_id, notification_group),
+ user = User.find(recipient_id)
+
+ mail(to: user.notification_email_for(notification_group),
subject: subject("Request to join the #{member_source.human_name} #{member_source.model_name.singular}"))
end
@@ -21,7 +23,7 @@ module Emails
@member_source_type = member_source_type
@member_id = member_id
- mail(to: recipient(member.user, notification_group),
+ mail(to: member.user.notification_email_for(notification_group),
subject: subject("Access to the #{member_source.human_name} #{member_source.model_name.singular} was granted"))
end
@@ -29,7 +31,9 @@ module Emails
@member_source_type = member_source_type
@member_source = member_source_class.find(source_id)
- mail(to: recipient(user_id, notification_group),
+ user = User.find(user_id)
+
+ mail(to: user.notification_email_for(notification_group),
subject: subject("Access to the #{member_source.human_name} #{member_source.model_name.singular} was denied"))
end
@@ -47,7 +51,7 @@ module Emails
@member_id = member_id
return unless member.created_by
- mail(to: recipient(member.created_by, notification_group),
+ mail(to: member.created_by.notification_email_for(notification_group),
subject: subject('Invitation accepted'))
end
@@ -58,7 +62,9 @@ module Emails
@member_source = member_source_class.find(source_id)
@invite_email = invite_email
- mail(to: recipient(created_by_id, notification_group),
+ user = User.find(created_by_id)
+
+ mail(to: user.notification_email_for(notification_group),
subject: subject('Invitation declined'))
end
diff --git a/app/mailers/emails/merge_requests.rb b/app/mailers/emails/merge_requests.rb
index d972d0dea28..76b1c2d234c 100644
--- a/app/mailers/emails/merge_requests.rb
+++ b/app/mailers/emails/merge_requests.rb
@@ -110,7 +110,7 @@ module Emails
def merge_request_thread_options(sender_id, recipient_id, reason = nil)
{
from: sender(sender_id),
- to: recipient(recipient_id, @project.group),
+ to: User.find(recipient_id).notification_email_for(@project.group),
subject: subject("#{@merge_request.title} (#{@merge_request.to_reference})"),
'X-GitLab-NotificationReason' => reason
}
diff --git a/app/mailers/emails/notes.rb b/app/mailers/emails/notes.rb
index 51b6368a307..a1c8c3455b5 100644
--- a/app/mailers/emails/notes.rb
+++ b/app/mailers/emails/notes.rb
@@ -55,7 +55,7 @@ module Emails
def note_thread_options(recipient_id, reason)
{
from: sender(@note.author_id),
- to: recipient(recipient_id, @project&.group || @group),
+ to: User.find(recipient_id).notification_email_for(@project&.group || @group),
subject: subject("#{@note.noteable.title} (#{@note.noteable.reference_link_text})"),
'X-GitLab-NotificationReason' => reason
}
diff --git a/app/mailers/emails/pages_domains.rb b/app/mailers/emails/pages_domains.rb
index 2d390666f65..1caca6b3e44 100644
--- a/app/mailers/emails/pages_domains.rb
+++ b/app/mailers/emails/pages_domains.rb
@@ -7,7 +7,7 @@ module Emails
@project = domain.project
mail(
- to: recipient(recipient.id, @project.group),
+ to: recipient.notification_email_for(@project.group),
subject: subject("GitLab Pages domain '#{domain.domain}' has been enabled")
)
end
@@ -17,7 +17,7 @@ module Emails
@project = domain.project
mail(
- to: recipient(recipient.id, @project.group),
+ to: recipient.notification_email_for(@project.group),
subject: subject("GitLab Pages domain '#{domain.domain}' has been disabled")
)
end
@@ -27,7 +27,7 @@ module Emails
@project = domain.project
mail(
- to: recipient(recipient.id, @project.group),
+ to: recipient.notification_email_for(@project.group),
subject: subject("Verification succeeded for GitLab Pages domain '#{domain.domain}'")
)
end
@@ -37,7 +37,7 @@ module Emails
@project = domain.project
mail(
- to: recipient(recipient.id, @project.group),
+ to: recipient.notification_email_for(@project.group),
subject: subject("ACTION REQUIRED: Verification failed for GitLab Pages domain '#{domain.domain}'")
)
end
diff --git a/app/mailers/emails/projects.rb b/app/mailers/emails/projects.rb
index 4acf4a1dc4f..6274879ee99 100644
--- a/app/mailers/emails/projects.rb
+++ b/app/mailers/emails/projects.rb
@@ -7,20 +7,20 @@ module Emails
@project = Project.find project_id
@target_url = project_url(@project)
@old_path_with_namespace = old_path_with_namespace
- mail(to: recipient(user_id, @project.group),
+ mail(to: @user.notification_email_for(@project.group),
subject: subject("Project was moved"))
end
def project_was_exported_email(current_user, project)
@project = project
- mail(to: recipient(current_user.id, project.group),
+ mail(to: current_user.notification_email_for(project.group),
subject: subject("Project was exported"))
end
def project_was_not_exported_email(current_user, project, errors)
@project = project
@errors = errors
- mail(to: recipient(current_user.id, @project.group),
+ mail(to: current_user.notification_email_for(@project.group),
subject: subject("Project export error"))
end
@@ -28,7 +28,7 @@ module Emails
@project = project
@user = user
- mail(to: recipient(user.id, project.group), subject: subject("Project cleanup has completed"))
+ mail(to: user.notification_email_for(project.group), subject: subject("Project cleanup has completed"))
end
def repository_cleanup_failure_email(project, user, error)
@@ -36,7 +36,7 @@ module Emails
@user = user
@error = error
- mail(to: recipient(user.id, project.group), subject: subject("Project cleanup failure"))
+ mail(to: user.notification_email_for(project.group), subject: subject("Project cleanup failure"))
end
def repository_push_email(project_id, opts = {})
diff --git a/app/mailers/emails/remote_mirrors.rb b/app/mailers/emails/remote_mirrors.rb
index f3938a052b0..9cde53918b9 100644
--- a/app/mailers/emails/remote_mirrors.rb
+++ b/app/mailers/emails/remote_mirrors.rb
@@ -5,8 +5,9 @@ module Emails
def remote_mirror_update_failed_email(remote_mirror_id, recipient_id)
@remote_mirror = RemoteMirror.find_by_id(remote_mirror_id)
@project = @remote_mirror.project
+ user = User.find(recipient_id)
- mail(to: recipient(recipient_id, @project.group), subject: subject('Remote mirror update failed'))
+ mail(to: user.notification_email_for(@project.group), subject: subject('Remote mirror update failed'))
end
end
end
diff --git a/app/mailers/notify.rb b/app/mailers/notify.rb
index 6fa1c701cd8..d0b43b4397f 100644
--- a/app/mailers/notify.rb
+++ b/app/mailers/notify.rb
@@ -71,20 +71,6 @@ class Notify < BaseMailer
address.format
end
- # Look up a User's notification email for a particular context.
- # Can look up by their ID or can accept a User object.
- #
- # recipient - User object OR a User ID
- # notification_group - The parent group of the notification
- #
- # Returns a String containing the User's email address.
- def recipient(recipient, notification_group = nil)
- user = recipient if recipient.is_a?(User)
- user ||= User.find(recipient)
-
- user.notification_email_for(notification_group)
- end
-
# Formats arguments into a String suitable for use as an email subject
#
# extra - Extra Strings to be inserted into the subject
diff --git a/app/models/project.rb b/app/models/project.rb
index 883df947ccb..2a7d652678d 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -245,7 +245,6 @@ class Project < ApplicationRecord
has_one :cluster_project, class_name: 'Clusters::Project'
has_many :clusters, through: :cluster_project, class_name: 'Clusters::Cluster'
- has_many :cluster_ingresses, through: :clusters, source: :application_ingress, class_name: 'Clusters::Applications::Ingress'
has_many :kubernetes_namespaces, class_name: 'Clusters::KubernetesNamespace'
has_many :prometheus_metrics
diff --git a/app/services/issues/zoom_link_service.rb b/app/services/issues/zoom_link_service.rb
index a061ab22875..6cc1cdeeff9 100644
--- a/app/services/issues/zoom_link_service.rb
+++ b/app/services/issues/zoom_link_service.rb
@@ -17,7 +17,7 @@ module Issues
end
def can_add_link?
- available? && !link_in_issue_description?
+ can? && !link_in_issue_description?
end
def remove_link
@@ -29,7 +29,7 @@ module Issues
end
def can_remove_link?
- available? && link_in_issue_description?
+ can? && link_in_issue_description?
end
def parse_link(link)
@@ -75,14 +75,6 @@ module Issues
issue_description[/(\S+)\z/, 1]
end
- def available?
- feature_enabled? && can?
- end
-
- def feature_enabled?
- Feature.enabled?(:issue_zoom_integration, project)
- end
-
def can?
current_user.can?(:update_issue, project)
end
diff --git a/app/services/projects/fork_service.rb b/app/services/projects/fork_service.rb
index 17686b45900..47ab7f9a8a0 100644
--- a/app/services/projects/fork_service.rb
+++ b/app/services/projects/fork_service.rb
@@ -43,6 +43,7 @@ module Projects
shared_runners_enabled: @project.shared_runners_enabled,
namespace_id: target_namespace.id,
fork_network: fork_network,
+ ci_config_path: @project.ci_config_path,
# We need to set ci_default_git_depth to 0 for the forked project when
# @project.ci_default_git_depth is nil in order to keep the same behaviour
# and not get ProjectCiCdSetting::DEFAULT_GIT_DEPTH set on create
diff --git a/app/views/layouts/nav/_dashboard.html.haml b/app/views/layouts/nav/_dashboard.html.haml
index b20792a4417..0d2a96d1917 100644
--- a/app/views/layouts/nav/_dashboard.html.haml
+++ b/app/views/layouts/nav/_dashboard.html.haml
@@ -21,7 +21,7 @@
- if any_dashboard_nav_link?([:groups, :milestones, :activity, :snippets])
%li.header-more.dropdown
- %a{ href: "#", data: { toggle: "dropdown" } }
+ %a{ href: "#", data: { toggle: "dropdown", qa_selector: 'more_dropdown' } }
= _('More')
= sprite_icon('angle-down', css_class: 'caret-down')
.dropdown-menu
@@ -42,7 +42,7 @@
- if dashboard_nav_link?(:snippets)
= nav_link(controller: 'dashboard/snippets') do
- = link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets qa-snippets-link' do
+ = link_to dashboard_snippets_path, class: 'dashboard-shortcuts-snippets', data: { qa_selector: 'snippets_link' } do
= _('Snippets')
= render_if_exists 'layouts/nav/sidebar/analytics_more_link'
diff --git a/changelogs/unreleased/30217-refactor-email-notification-code.yml b/changelogs/unreleased/30217-refactor-email-notification-code.yml
new file mode 100644
index 00000000000..c55096301cb
--- /dev/null
+++ b/changelogs/unreleased/30217-refactor-email-notification-code.yml
@@ -0,0 +1,5 @@
+---
+title: Refactor email notification code
+merge_request: 17741
+author: briankabiro
+type: other
diff --git a/changelogs/unreleased/30881-webide-mr-confirmation.yml b/changelogs/unreleased/30881-webide-mr-confirmation.yml
new file mode 100644
index 00000000000..075e091adc4
--- /dev/null
+++ b/changelogs/unreleased/30881-webide-mr-confirmation.yml
@@ -0,0 +1,6 @@
+---
+title: 'Fix Issue: WebIDE asks for confirmation to leave the page when committing
+ and creating a new MR'
+merge_request: 17671
+author:
+type: fixed
diff --git a/changelogs/unreleased/32133-remove-feature-flag-for-zoom.yml b/changelogs/unreleased/32133-remove-feature-flag-for-zoom.yml
new file mode 100644
index 00000000000..74e4d15c67f
--- /dev/null
+++ b/changelogs/unreleased/32133-remove-feature-flag-for-zoom.yml
@@ -0,0 +1,5 @@
+---
+title: Allow users to add and remove zoom rooms on an issue using quick action commands
+merge_request:
+author:
+type: added
diff --git a/changelogs/unreleased/fork_gitlab_ci.yml b/changelogs/unreleased/fork_gitlab_ci.yml
new file mode 100644
index 00000000000..4b64fe735dd
--- /dev/null
+++ b/changelogs/unreleased/fork_gitlab_ci.yml
@@ -0,0 +1,5 @@
+---
+title: Preserve custom .gitlab-ci.yml config path when forking.
+merge_request: 17817
+author: Mathieu Parent
+type: added
diff --git a/changelogs/unreleased/internationalization-time-series-wrapper.yml b/changelogs/unreleased/internationalization-time-series-wrapper.yml
new file mode 100644
index 00000000000..b49a2875c1c
--- /dev/null
+++ b/changelogs/unreleased/internationalization-time-series-wrapper.yml
@@ -0,0 +1,5 @@
+---
+title: Provides internationalization support to chart legends
+merge_request: 16832
+author:
+type: added
diff --git a/changelogs/unreleased/issue_11241.yml b/changelogs/unreleased/issue_11241.yml
new file mode 100644
index 00000000000..ff9364b4b5b
--- /dev/null
+++ b/changelogs/unreleased/issue_11241.yml
@@ -0,0 +1,5 @@
+---
+title: Expose web_url for epics on API
+merge_request: 17380
+author:
+type: added
diff --git a/doc/api/epics.md b/doc/api/epics.md
index 92b534fc187..7ef12766f78 100644
--- a/doc/api/epics.md
+++ b/doc/api/epics.md
@@ -67,7 +67,7 @@ Example response:
"title": "Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"state": "opened",
- "web_edit_url": "http://localhost:3001/groups/test/-/epics/4",
+ "web_url": "http://localhost:3001/groups/test/-/epics/4",
"reference": "&4",
"author": {
"id": 10,
@@ -122,7 +122,7 @@ Example response:
"title": "Ea cupiditate dolores ut vero consequatur quasi veniam voluptatem et non.",
"description": "Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.",
"state": "opened",
- "web_edit_url": "http://localhost:3001/groups/test/-/epics/5",
+ "web_url": "http://localhost:3001/groups/test/-/epics/5",
"reference": "&5",
"author":{
"id": 7,
@@ -188,7 +188,7 @@ Example response:
"title": "Epic",
"description": "Epic description",
"state": "opened",
- "web_edit_url": "http://localhost:3001/groups/test/-/epics/6",
+ "web_url": "http://localhost:3001/groups/test/-/epics/5",
"reference": "&6",
"author": {
"name" : "Alexandra Bashirian",
@@ -255,7 +255,7 @@ Example response:
"title": "New Title",
"description": "Epic description",
"state": "opened",
- "web_edit_url": "http://localhost:3001/groups/test/-/epics/6",
+ "web_url": "http://localhost:3001/groups/test/-/epics/5",
"reference": "&6",
"author": {
"name" : "Alexandra Bashirian",
diff --git a/doc/user/project/quick_actions.md b/doc/user/project/quick_actions.md
index bc16ea52578..d54ee6dcb07 100644
--- a/doc/user/project/quick_actions.md
+++ b/doc/user/project/quick_actions.md
@@ -64,8 +64,8 @@ The following quick actions are applicable to descriptions, discussions and thre
| `/create_merge_request <branch name>` | ✓ | | | Create a new merge request starting from the current issue |
| `/relate #issue1 #issue2` | ✓ | | | Mark issues as related **(STARTER)** |
| `/move <path/to/project>` | ✓ | | | Move this issue to another project |
-| `/zoom <Zoom URL>` | ✓ | | | Add Zoom meeting to this issue. ([Introduced in GitLab 12.3](https://gitlab.com/gitlab-org/gitlab/merge_requests/16609). Must be enabled by feature flag `issue_zoom_integration` for self-hosted. [Feature flag to be removed and available by default in 12.4.](https://gitlab.com/gitlab-org/gitlab/issues/32133)) |
-| `/remove_zoom` | ✓ | | | Remove Zoom meeting from this issue. ([Introduced in GitLab 12.3](https://gitlab.com/gitlab-org/gitlab/merge_requests/16609). Must be enabled by feature flag `issue_zoom_integration` for self-hosted. [Feature flag to be removed and available by default in 12.4.](https://gitlab.com/gitlab-org/gitlab/issues/32133)) |
+| `/zoom <Zoom URL>` | ✓ | | | Add Zoom meeting to this issue. |
+| `/remove_zoom` | ✓ | | | Remove Zoom meeting from this issue. |
| `/target_branch <local branch name>` | | ✓ | | Set target branch |
| `/wip` | | ✓ | | Toggle the Work In Progress status |
| `/approve` | | ✓ | | Approve the merge request |
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 9a60123b80f..ca291aea6ae 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -9858,6 +9858,9 @@ msgstr ""
msgid "Metrics|Add metric"
msgstr ""
+msgid "Metrics|Avg"
+msgstr ""
+
msgid "Metrics|Check out the CI/CD documentation on deploying to an environment"
msgstr ""
@@ -9888,6 +9891,9 @@ msgstr ""
msgid "Metrics|Legend label (optional)"
msgstr ""
+msgid "Metrics|Max"
+msgstr ""
+
msgid "Metrics|Must be a valid PromQL query."
msgstr ""
@@ -15833,7 +15839,7 @@ msgstr ""
msgid "There was an error fetching configuration for charts"
msgstr ""
-msgid "There was an error fetching the form data"
+msgid "There was an error fetching data for the form"
msgstr ""
msgid "There was an error gathering the chart data"
diff --git a/qa/knapsack/gitlab-ce/review-qa-all_master_report.json b/qa/knapsack/gitlab-ce/review-qa-all_master_report.json
deleted file mode 100644
index f147346ba0f..00000000000
--- a/qa/knapsack/gitlab-ce/review-qa-all_master_report.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "qa/specs/features/browser_ui/1_manage/project/add_project_member_spec.rb": 9.697327613830566,
- "qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb": 46.54227638244629,
- "qa/specs/features/browser_ui/1_manage/project/create_project_spec.rb": 10.214765310287476,
- "qa/specs/features/browser_ui/1_manage/project/view_project_activity_spec.rb": 7.882027864456177,
- "qa/specs/features/api/3_create/repository/files_spec.rb": 5.015859127044678,
- "qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb": 12.772682905197144,
- "qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb": 29.76174831390381,
- "qa/specs/features/browser_ui/3_create/repository/use_ssh_key_spec.rb": 22.800872802734375,
- "qa/specs/features/browser_ui/1_manage/login/register_spec.rb": 22.320587396621704,
- "qa/specs/features/api/1_manage/users_spec.rb": 0.6089541912078857,
- "qa/specs/features/browser_ui/3_create/repository/clone_spec.rb": 0.9618203639984131,
- "qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb": 13.403101205825806,
- "qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb": 8.810423135757446,
- "qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb": 7.730542182922363,
- "qa/specs/features/browser_ui/3_create/repository/add_ssh_key_spec.rb": 16.18057894706726,
- "qa/specs/features/browser_ui/4_verify/ci_variable/add_ci_variable_spec.rb": 8.31815505027771,
- "qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb": 9.48607873916626,
- "qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb": 19.552733182907104,
- "qa/specs/features/browser_ui/3_create/wiki/create_edit_clone_push_wiki_spec.rb": 17.273863554000854,
- "qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb": 8.281434059143066,
- "qa/specs/features/browser_ui/3_create/repository/create_edit_delete_file_via_web_spec.rb": 18.047621726989746,
- "qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb": 7.422840595245361,
- "qa/specs/features/browser_ui/1_manage/login/log_in_spec.rb": 3.438166856765747,
- "qa/specs/features/browser_ui/4_verify/runner/register_runner_spec.rb": 18.679633855819702,
- "qa/specs/features/browser_ui/3_create/merge_request/squash_merge_request_spec.rb": 27.943300485610962,
- "qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb": 39.17585229873657,
- "qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb": 40.09336972236633,
- "qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb": 3.705310821533203,
- "qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb": 5.812374591827393,
- "qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb": 92.46774697303772,
- "qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb": 100.28881478309631,
- "qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb": 23.710937023162842,
- "qa/specs/features/browser_ui/1_manage/login/login_via_oauth_spec.rb": 20.58603596687317,
- "qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb": 25.460349321365356,
- "qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb": 19.459370374679565,
- "qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb": 6.731764793395996,
- "qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb": 15.342933893203735,
- "qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb": 11.280649185180664,
- "qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb": 57.48992609977722,
- "qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb": 32.5517954826355
-} \ No newline at end of file
diff --git a/qa/qa/ce/knapsack/nightly_master_report.json b/qa/knapsack/master_report.json
index 08694f706de..467150e84c7 100644
--- a/qa/qa/ce/knapsack/nightly_master_report.json
+++ b/qa/knapsack/master_report.json
@@ -1,4 +1,12 @@
{
+ "qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb": 4.835599899291992,
+ "qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb": 69.85551619529724,
+ "qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb": 14.649160623550415,
+ "qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb": 12.790381908416748,
+ "qa/specs/features/ee/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb": 0.00018262863159179688,
+ "qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb": 59.73394823074341,
+ "qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb": 26.39240026473999,
+ "qa/specs/features/ee/browser_ui/secure/create_project_with_secure_spec.rb": 46.76790499687195,
"qa/specs/features/api/1_manage/users_spec.rb": 0.6089541912078857,
"qa/specs/features/api/3_create/repository/files_spec.rb": 5.015859127044678,
"qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb": 1.0199065208435059,
diff --git a/qa/qa/page/main/menu.rb b/qa/qa/page/main/menu.rb
index bff1b4cc836..024f56db8e2 100644
--- a/qa/qa/page/main/menu.rb
+++ b/qa/qa/page/main/menu.rb
@@ -20,6 +20,7 @@ module QA
element :admin_area_link
element :projects_dropdown, required: true
element :groups_dropdown, required: true
+ element :more_dropdown, required: true
element :snippets_link
end
@@ -52,6 +53,13 @@ module QA
end
end
+ def go_to_snippets
+ within_top_menu do
+ click_element :more_dropdown
+ click_element :snippets_link
+ end
+ end
+
def click_admin_area
within_top_menu { click_element :admin_area_link }
end
@@ -80,10 +88,6 @@ module QA
end
end
- def click_snippets_link
- click_element :snippets_link
- end
-
def search_for(term)
fill_element :search_term_field, "#{term}\n"
end
diff --git a/qa/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb b/qa/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb
index 796de44a012..cbc9f63f772 100644
--- a/qa/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb
@@ -7,7 +7,7 @@ module QA
Runtime::Browser.visit(:gitlab, Page::Main::Login)
Page::Main::Login.perform(&:sign_in_using_credentials)
- Page::Main::Menu.perform(&:click_snippets_link)
+ Page::Main::Menu.perform(&:go_to_snippets)
Resource::Snippet.fabricate_via_browser_ui! do |snippet|
snippet.title = 'Snippet title'
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 2f481e237a7..e8c438e459b 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe ApplicationHelper do
diff --git a/spec/helpers/auto_devops_helper_spec.rb b/spec/helpers/auto_devops_helper_spec.rb
index e80388f9ea7..5d42a80aae3 100644
--- a/spec/helpers/auto_devops_helper_spec.rb
+++ b/spec/helpers/auto_devops_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe AutoDevopsHelper do
diff --git a/spec/helpers/avatars_helper_spec.rb b/spec/helpers/avatars_helper_spec.rb
index 9330e75af11..77182a59c1c 100644
--- a/spec/helpers/avatars_helper_spec.rb
+++ b/spec/helpers/avatars_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe AvatarsHelper do
diff --git a/spec/helpers/award_emoji_helper_spec.rb b/spec/helpers/award_emoji_helper_spec.rb
index 035960ed96e..2ee27bc5427 100644
--- a/spec/helpers/award_emoji_helper_spec.rb
+++ b/spec/helpers/award_emoji_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe AwardEmojiHelper do
diff --git a/spec/helpers/blame_helper_spec.rb b/spec/helpers/blame_helper_spec.rb
index 722d21c566f..8b5de040508 100644
--- a/spec/helpers/blame_helper_spec.rb
+++ b/spec/helpers/blame_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe BlameHelper do
diff --git a/spec/helpers/blob_helper_spec.rb b/spec/helpers/blob_helper_spec.rb
index 1f236429347..e5e16e69833 100644
--- a/spec/helpers/blob_helper_spec.rb
+++ b/spec/helpers/blob_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe BlobHelper do
diff --git a/spec/helpers/boards_helper_spec.rb b/spec/helpers/boards_helper_spec.rb
index ad088398ce9..8a4446b7f59 100644
--- a/spec/helpers/boards_helper_spec.rb
+++ b/spec/helpers/boards_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe BoardsHelper do
diff --git a/spec/helpers/broadcast_messages_helper_spec.rb b/spec/helpers/broadcast_messages_helper_spec.rb
index 9bec0f9f432..d0f0e6f1dd5 100644
--- a/spec/helpers/broadcast_messages_helper_spec.rb
+++ b/spec/helpers/broadcast_messages_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe BroadcastMessagesHelper do
diff --git a/spec/helpers/button_helper_spec.rb b/spec/helpers/button_helper_spec.rb
index eebae1d7290..303b84b23e6 100644
--- a/spec/helpers/button_helper_spec.rb
+++ b/spec/helpers/button_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe ButtonHelper do
diff --git a/spec/helpers/calendar_helper_spec.rb b/spec/helpers/calendar_helper_spec.rb
index 828a9d9fea0..8dba6815e8d 100644
--- a/spec/helpers/calendar_helper_spec.rb
+++ b/spec/helpers/calendar_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe CalendarHelper do
diff --git a/spec/helpers/ci_status_helper_spec.rb b/spec/helpers/ci_status_helper_spec.rb
index 4f665dc0514..80be119b069 100644
--- a/spec/helpers/ci_status_helper_spec.rb
+++ b/spec/helpers/ci_status_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe CiStatusHelper do
diff --git a/spec/helpers/commits_helper_spec.rb b/spec/helpers/commits_helper_spec.rb
index 9e53bc05a48..cbc5566979b 100644
--- a/spec/helpers/commits_helper_spec.rb
+++ b/spec/helpers/commits_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe CommitsHelper do
diff --git a/spec/helpers/components_helper_spec.rb b/spec/helpers/components_helper_spec.rb
index 94a59193be8..703bee0ca92 100644
--- a/spec/helpers/components_helper_spec.rb
+++ b/spec/helpers/components_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe ComponentsHelper do
diff --git a/spec/helpers/dashboard_helper_spec.rb b/spec/helpers/dashboard_helper_spec.rb
index 059ae128d93..c899c2d9853 100644
--- a/spec/helpers/dashboard_helper_spec.rb
+++ b/spec/helpers/dashboard_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe DashboardHelper do
diff --git a/spec/helpers/defer_script_tag_helper_spec.rb b/spec/helpers/defer_script_tag_helper_spec.rb
index 9ada3ae75ba..440904188ca 100644
--- a/spec/helpers/defer_script_tag_helper_spec.rb
+++ b/spec/helpers/defer_script_tag_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe DeferScriptTagHelper do
diff --git a/spec/helpers/emails_helper_spec.rb b/spec/helpers/emails_helper_spec.rb
index a14ae2cde4b..931b7008173 100644
--- a/spec/helpers/emails_helper_spec.rb
+++ b/spec/helpers/emails_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe EmailsHelper do
diff --git a/spec/helpers/events_helper_spec.rb b/spec/helpers/events_helper_spec.rb
index e062c841717..7853617c3ed 100644
--- a/spec/helpers/events_helper_spec.rb
+++ b/spec/helpers/events_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe EventsHelper do
diff --git a/spec/helpers/explore_helper_spec.rb b/spec/helpers/explore_helper_spec.rb
index 12651d80e36..5208d3bd656 100644
--- a/spec/helpers/explore_helper_spec.rb
+++ b/spec/helpers/explore_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe ExploreHelper do
diff --git a/spec/helpers/form_helper_spec.rb b/spec/helpers/form_helper_spec.rb
index a70d8333f30..68aa0137cd5 100644
--- a/spec/helpers/form_helper_spec.rb
+++ b/spec/helpers/form_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe FormHelper do
diff --git a/spec/helpers/git_helper_spec.rb b/spec/helpers/git_helper_spec.rb
index 9b1ef1e05a2..505d6ed15ac 100644
--- a/spec/helpers/git_helper_spec.rb
+++ b/spec/helpers/git_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe GitHelper do
diff --git a/spec/helpers/gitlab_routing_helper_spec.rb b/spec/helpers/gitlab_routing_helper_spec.rb
index 027480143bd..bf043f3f013 100644
--- a/spec/helpers/gitlab_routing_helper_spec.rb
+++ b/spec/helpers/gitlab_routing_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe GitlabRoutingHelper do
diff --git a/spec/helpers/graph_helper_spec.rb b/spec/helpers/graph_helper_spec.rb
index 1f8a38dc697..dc389c09e60 100644
--- a/spec/helpers/graph_helper_spec.rb
+++ b/spec/helpers/graph_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe GraphHelper do
diff --git a/spec/helpers/hooks_helper_spec.rb b/spec/helpers/hooks_helper_spec.rb
index 2e21f1134b1..4352089c1c0 100644
--- a/spec/helpers/hooks_helper_spec.rb
+++ b/spec/helpers/hooks_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe HooksHelper do
diff --git a/spec/helpers/icons_helper_spec.rb b/spec/helpers/icons_helper_spec.rb
index 950f951e22e..f1b1d411e05 100644
--- a/spec/helpers/icons_helper_spec.rb
+++ b/spec/helpers/icons_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe IconsHelper do
diff --git a/spec/helpers/import_helper_spec.rb b/spec/helpers/import_helper_spec.rb
index 8a1b1e859b1..a6b283e49dc 100644
--- a/spec/helpers/import_helper_spec.rb
+++ b/spec/helpers/import_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe ImportHelper do
diff --git a/spec/helpers/instance_configuration_helper_spec.rb b/spec/helpers/instance_configuration_helper_spec.rb
index 5d716b9191d..31a6c7bc839 100644
--- a/spec/helpers/instance_configuration_helper_spec.rb
+++ b/spec/helpers/instance_configuration_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe InstanceConfigurationHelper do
diff --git a/spec/helpers/issues_helper_spec.rb b/spec/helpers/issues_helper_spec.rb
index d15b5a4ab58..a394812f8f0 100644
--- a/spec/helpers/issues_helper_spec.rb
+++ b/spec/helpers/issues_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require "spec_helper"
describe IssuesHelper do
diff --git a/spec/helpers/labels_helper_spec.rb b/spec/helpers/labels_helper_spec.rb
index 1d57aaa0da5..a715390ecae 100644
--- a/spec/helpers/labels_helper_spec.rb
+++ b/spec/helpers/labels_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe LabelsHelper do
diff --git a/spec/helpers/markup_helper_spec.rb b/spec/helpers/markup_helper_spec.rb
index f6e1720e113..364f215420a 100644
--- a/spec/helpers/markup_helper_spec.rb
+++ b/spec/helpers/markup_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe MarkupHelper do
@@ -408,12 +410,12 @@ describe MarkupHelper do
it 'preserves a link href when link text is truncated' do
text = 'The quick brown fox jumped over the lazy dog' # 44 chars
- input = "#{text}#{text}#{text} " # 133 chars
link_url = 'http://example.com/foo/bar/baz' # 30 chars
- input << link_url
- object = create_object(input)
+ input = "#{text}#{text}#{text} #{link_url}" # 163 chars
expected_link_text = 'http://example...</a>'
+ object = create_object(input)
+
expect(first_line_in_markdown(object, attribute, 150, project: project)).to match(link_url)
expect(first_line_in_markdown(object, attribute, 150, project: project)).to match(expected_link_text)
end
diff --git a/spec/helpers/members_helper_spec.rb b/spec/helpers/members_helper_spec.rb
index 908e8960f37..e52d2166a69 100644
--- a/spec/helpers/members_helper_spec.rb
+++ b/spec/helpers/members_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe MembersHelper do
diff --git a/spec/helpers/milestones_helper_spec.rb b/spec/helpers/milestones_helper_spec.rb
index f5185cb2857..3574066e03e 100644
--- a/spec/helpers/milestones_helper_spec.rb
+++ b/spec/helpers/milestones_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe MilestonesHelper do
diff --git a/spec/helpers/milestones_routing_helper_spec.rb b/spec/helpers/milestones_routing_helper_spec.rb
index dc13a43c2ab..4da589a5007 100644
--- a/spec/helpers/milestones_routing_helper_spec.rb
+++ b/spec/helpers/milestones_routing_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe MilestonesRoutingHelper do
diff --git a/spec/helpers/namespaces_helper_spec.rb b/spec/helpers/namespaces_helper_spec.rb
index e38513f6d94..36465069311 100644
--- a/spec/helpers/namespaces_helper_spec.rb
+++ b/spec/helpers/namespaces_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe NamespacesHelper do
diff --git a/spec/helpers/nav_helper_spec.rb b/spec/helpers/nav_helper_spec.rb
index ff2be795d87..882a125a0da 100644
--- a/spec/helpers/nav_helper_spec.rb
+++ b/spec/helpers/nav_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe NavHelper, :do_not_mock_admin_mode do
diff --git a/spec/helpers/notes_helper_spec.rb b/spec/helpers/notes_helper_spec.rb
index 0715f34dafe..2da7717ebfc 100644
--- a/spec/helpers/notes_helper_spec.rb
+++ b/spec/helpers/notes_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require "spec_helper"
describe NotesHelper do
diff --git a/spec/helpers/notifications_helper_spec.rb b/spec/helpers/notifications_helper_spec.rb
index 5717b15d656..2384c87b377 100644
--- a/spec/helpers/notifications_helper_spec.rb
+++ b/spec/helpers/notifications_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe NotificationsHelper do
diff --git a/spec/helpers/page_layout_helper_spec.rb b/spec/helpers/page_layout_helper_spec.rb
index 3b08fc511a3..7e851a1af01 100644
--- a/spec/helpers/page_layout_helper_spec.rb
+++ b/spec/helpers/page_layout_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe PageLayoutHelper do
diff --git a/spec/helpers/pagination_helper_spec.rb b/spec/helpers/pagination_helper_spec.rb
index e235475fb47..9fb51249edc 100644
--- a/spec/helpers/pagination_helper_spec.rb
+++ b/spec/helpers/pagination_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe PaginationHelper do
diff --git a/spec/helpers/preferences_helper_spec.rb b/spec/helpers/preferences_helper_spec.rb
index 554c08add2d..c4ed99e56a0 100644
--- a/spec/helpers/preferences_helper_spec.rb
+++ b/spec/helpers/preferences_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe PreferencesHelper do
diff --git a/spec/helpers/profiles_helper_spec.rb b/spec/helpers/profiles_helper_spec.rb
index da2dc229c35..fc282eee26d 100644
--- a/spec/helpers/profiles_helper_spec.rb
+++ b/spec/helpers/profiles_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe ProfilesHelper do
diff --git a/spec/helpers/rss_helper_spec.rb b/spec/helpers/rss_helper_spec.rb
index a7f9bdf07e4..657f5fb42bc 100644
--- a/spec/helpers/rss_helper_spec.rb
+++ b/spec/helpers/rss_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe RssHelper do
diff --git a/spec/helpers/runners_helper_spec.rb b/spec/helpers/runners_helper_spec.rb
index bf00841fcb6..042714d002e 100644
--- a/spec/helpers/runners_helper_spec.rb
+++ b/spec/helpers/runners_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe RunnersHelper do
diff --git a/spec/helpers/search_helper_spec.rb b/spec/helpers/search_helper_spec.rb
index cc058d5b983..bc2a0bb7f38 100644
--- a/spec/helpers/search_helper_spec.rb
+++ b/spec/helpers/search_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe SearchHelper do
diff --git a/spec/helpers/sidekiq_helper_spec.rb b/spec/helpers/sidekiq_helper_spec.rb
index 117abc9c556..86e52419f9c 100644
--- a/spec/helpers/sidekiq_helper_spec.rb
+++ b/spec/helpers/sidekiq_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe SidekiqHelper do
diff --git a/spec/helpers/snippets_helper_spec.rb b/spec/helpers/snippets_helper_spec.rb
index ce5e037f88d..66c8d576a4c 100644
--- a/spec/helpers/snippets_helper_spec.rb
+++ b/spec/helpers/snippets_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe SnippetsHelper do
diff --git a/spec/helpers/storage_helper_spec.rb b/spec/helpers/storage_helper_spec.rb
index 4bd0fbb76ca..577e6e5caf0 100644
--- a/spec/helpers/storage_helper_spec.rb
+++ b/spec/helpers/storage_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require "spec_helper"
describe StorageHelper do
diff --git a/spec/helpers/submodule_helper_spec.rb b/spec/helpers/submodule_helper_spec.rb
index 465c76e5e6b..fcfce0eaf31 100644
--- a/spec/helpers/submodule_helper_spec.rb
+++ b/spec/helpers/submodule_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe SubmoduleHelper do
diff --git a/spec/helpers/tab_helper_spec.rb b/spec/helpers/tab_helper_spec.rb
index 9abf63d4bd4..3a3935a2130 100644
--- a/spec/helpers/tab_helper_spec.rb
+++ b/spec/helpers/tab_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe TabHelper do
diff --git a/spec/helpers/time_helper_spec.rb b/spec/helpers/time_helper_spec.rb
index 8bf378549fe..858d6d341f4 100644
--- a/spec/helpers/time_helper_spec.rb
+++ b/spec/helpers/time_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe TimeHelper do
diff --git a/spec/helpers/todos_helper_spec.rb b/spec/helpers/todos_helper_spec.rb
index 63806ef91f3..7c73b990338 100644
--- a/spec/helpers/todos_helper_spec.rb
+++ b/spec/helpers/todos_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require "spec_helper"
describe TodosHelper do
diff --git a/spec/helpers/tree_helper_spec.rb b/spec/helpers/tree_helper_spec.rb
index 4a62e696cd9..c7cdb4ae45c 100644
--- a/spec/helpers/tree_helper_spec.rb
+++ b/spec/helpers/tree_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe TreeHelper do
diff --git a/spec/helpers/user_callouts_helper_spec.rb b/spec/helpers/user_callouts_helper_spec.rb
index 8fa479a4474..547bf693e94 100644
--- a/spec/helpers/user_callouts_helper_spec.rb
+++ b/spec/helpers/user_callouts_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require "spec_helper"
describe UserCalloutsHelper do
diff --git a/spec/helpers/users_helper_spec.rb b/spec/helpers/users_helper_spec.rb
index 9165e91ddcd..59abe8c09e1 100644
--- a/spec/helpers/users_helper_spec.rb
+++ b/spec/helpers/users_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe UsersHelper do
diff --git a/spec/helpers/version_check_helper_spec.rb b/spec/helpers/version_check_helper_spec.rb
index edc0d64d031..421ff21bfdb 100644
--- a/spec/helpers/version_check_helper_spec.rb
+++ b/spec/helpers/version_check_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe VersionCheckHelper do
diff --git a/spec/helpers/visibility_level_helper_spec.rb b/spec/helpers/visibility_level_helper_spec.rb
index 2d276696208..1a176cfe965 100644
--- a/spec/helpers/visibility_level_helper_spec.rb
+++ b/spec/helpers/visibility_level_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe VisibilityLevelHelper do
diff --git a/spec/helpers/wiki_helper_spec.rb b/spec/helpers/wiki_helper_spec.rb
index ee977e37ec1..bcc2bd71da1 100644
--- a/spec/helpers/wiki_helper_spec.rb
+++ b/spec/helpers/wiki_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
describe WikiHelper do
diff --git a/spec/javascripts/ide/stores/modules/commit/actions_spec.js b/spec/javascripts/ide/stores/modules/commit/actions_spec.js
index 091b454c0d2..ffb97c85326 100644
--- a/spec/javascripts/ide/stores/modules/commit/actions_spec.js
+++ b/spec/javascripts/ide/stores/modules/commit/actions_spec.js
@@ -473,18 +473,16 @@ describe('IDE commit module actions', () => {
});
it('resets changed files before redirecting', done => {
+ visitUrl = visitUrl.and.callFake(() => {
+ expect(store.state.stagedFiles.length).toBe(0);
+ done();
+ });
+
spyOn(eventHub, '$on');
store.state.commit.commitAction = '3';
- store
- .dispatch('commit/commitChanges')
- .then(() => {
- expect(store.state.stagedFiles.length).toBe(0);
-
- done();
- })
- .catch(done.fail);
+ store.dispatch('commit/commitChanges').catch(done.fail);
});
});
});
diff --git a/spec/javascripts/monitoring/charts/time_series_spec.js b/spec/javascripts/monitoring/charts/time_series_spec.js
index 091ab06523e..5c718135b90 100644
--- a/spec/javascripts/monitoring/charts/time_series_spec.js
+++ b/spec/javascripts/monitoring/charts/time_series_spec.js
@@ -60,6 +60,18 @@ describe('Time series component', () => {
expect(timeSeriesChart.find('.js-graph-widgets').text()).toBe(mockWidgets);
});
+ it('allows user to override max value label text using prop', () => {
+ timeSeriesChart.setProps({ legendMaxText: 'legendMaxText' });
+
+ expect(timeSeriesChart.props().legendMaxText).toBe('legendMaxText');
+ });
+
+ it('allows user to override average value label text using prop', () => {
+ timeSeriesChart.setProps({ legendAverageText: 'averageText' });
+
+ expect(timeSeriesChart.props().legendAverageText).toBe('averageText');
+ });
+
describe('methods', () => {
describe('formatTooltipText', () => {
const mockDate = deploymentData[0].created_at;
diff --git a/spec/lib/gitlab/import_export/all_models.yml b/spec/lib/gitlab/import_export/all_models.yml
index eef9bd006b6..16d5da59f1b 100644
--- a/spec/lib/gitlab/import_export/all_models.yml
+++ b/spec/lib/gitlab/import_export/all_models.yml
@@ -250,7 +250,6 @@ project:
- cluster
- clusters
- cluster_project
-- cluster_ingresses
- creator
- cycle_analytics_stages
- group
diff --git a/spec/services/issues/zoom_link_service_spec.rb b/spec/services/issues/zoom_link_service_spec.rb
index baa6d774864..595d06d5331 100644
--- a/spec/services/issues/zoom_link_service_spec.rb
+++ b/spec/services/issues/zoom_link_service_spec.rb
@@ -38,12 +38,6 @@ describe Issues::ZoomLinkService do
end
end
- shared_context 'feature flag disabled' do
- before do
- stub_feature_flags(issue_zoom_integration: false)
- end
- end
-
shared_context 'insufficient permissions' do
before do
project.add_guest(user)
@@ -78,11 +72,6 @@ describe Issues::ZoomLinkService do
include_examples 'cannot add link'
end
- context 'when feature flag is disabled' do
- include_context 'feature flag disabled'
- include_examples 'cannot add link'
- end
-
context 'with insufficient permissions' do
include_context 'insufficient permissions'
include_examples 'cannot add link'
@@ -113,12 +102,6 @@ describe Issues::ZoomLinkService do
it { is_expected.to eq(true) }
- context 'when feature flag is disabled' do
- include_context 'feature flag disabled'
-
- it { is_expected.to eq(false) }
- end
-
context 'with insufficient permissions' do
include_context 'insufficient permissions'
@@ -152,11 +135,6 @@ describe Issues::ZoomLinkService do
.to eq(issue.description.delete_suffix("\n\n#{zoom_link}"))
end
- context 'when feature flag is disabled' do
- include_context 'feature flag disabled'
- include_examples 'cannot remove link'
- end
-
context 'with insufficient permissions' do
include_context 'insufficient permissions'
include_examples 'cannot remove link'
@@ -187,12 +165,6 @@ describe Issues::ZoomLinkService do
it { is_expected.to eq(true) }
- context 'when feature flag is disabled' do
- include_context 'feature flag disabled'
-
- it { is_expected.to eq(false) }
- end
-
context 'with insufficient permissions' do
include_context 'insufficient permissions'
diff --git a/spec/services/projects/fork_service_spec.rb b/spec/services/projects/fork_service_spec.rb
index b759830d603..7e7e80ca240 100644
--- a/spec/services/projects/fork_service_spec.rb
+++ b/spec/services/projects/fork_service_spec.rb
@@ -50,6 +50,7 @@ describe Projects::ForkService do
it { expect(to_project.star_count).to be_zero }
it { expect(to_project.description).to eq(@from_project.description) }
it { expect(to_project.avatar.file).to be_exists }
+ it { expect(to_project.ci_config_path).to eq(@from_project.ci_config_path) }
# This test is here because we had a bug where the from-project lost its
# avatar after being forked.
@@ -215,7 +216,8 @@ describe Projects::ForkService do
@project = create(:project, :repository,
creator_id: @group_owner.id,
star_count: 777,
- description: 'Wow, such a cool project!')
+ description: 'Wow, such a cool project!',
+ ci_config_path: 'debian/salsa-ci.yml')
@group = create(:group)
@group.add_user(@group_owner, GroupMember::OWNER)
@group.add_user(@developer, GroupMember::DEVELOPER)
@@ -228,14 +230,15 @@ describe Projects::ForkService do
it 'group owner successfully forks project into the group' do
to_project = fork_project(@project, @group_owner, @opts)
- expect(to_project).to be_persisted
- expect(to_project.errors).to be_empty
- expect(to_project.owner).to eq(@group)
- expect(to_project.namespace).to eq(@group)
- expect(to_project.name).to eq(@project.name)
- expect(to_project.path).to eq(@project.path)
- expect(to_project.description).to eq(@project.description)
- expect(to_project.star_count).to be_zero
+ expect(to_project).to be_persisted
+ expect(to_project.errors).to be_empty
+ expect(to_project.owner).to eq(@group)
+ expect(to_project.namespace).to eq(@group)
+ expect(to_project.name).to eq(@project.name)
+ expect(to_project.path).to eq(@project.path)
+ expect(to_project.description).to eq(@project.description)
+ expect(to_project.ci_config_path).to eq(@project.ci_config_path)
+ expect(to_project.star_count).to be_zero
end
end
diff --git a/spec/support/helpers/gpg_helpers.rb b/spec/support/helpers/gpg_helpers.rb
index 03ffadc8f7f..f4df1cf601c 100644
--- a/spec/support/helpers/gpg_helpers.rb
+++ b/spec/support/helpers/gpg_helpers.rb
@@ -373,6 +373,8 @@ module GpgHelpers
KEY
end
+ # passphrase for secret key is:
+ # 4a45718624c9939a043471d83d1eda7c
def secret_key
<<~SECRET
-----BEGIN PGP PRIVATE KEY BLOCK-----
diff --git a/spec/support/shared_examples/quick_actions/issue/zoom_quick_actions_shared_examples.rb b/spec/support/shared_examples/quick_actions/issue/zoom_quick_actions_shared_examples.rb
index cb5460bde23..b4a8e3fca4d 100644
--- a/spec/support/shared_examples/quick_actions/issue/zoom_quick_actions_shared_examples.rb
+++ b/spec/support/shared_examples/quick_actions/issue/zoom_quick_actions_shared_examples.rb
@@ -45,14 +45,6 @@ shared_examples 'zoom quick actions' do
expect(page).to have_content('Failed to add a Zoom meeting')
expect(page).not_to have_content(zoom_link)
end
-
- context 'when feature flag disabled' do
- before do
- stub_feature_flags(issue_zoom_integration: false)
- end
-
- include_examples 'skip silently'
- end
end
context 'with Zoom link not at the end of the issue description' do
@@ -92,14 +84,6 @@ shared_examples 'zoom quick actions' do
expect(page).to have_content('Zoom meeting removed')
expect(issue.reload.description).to eq("Text with #{zoom_link}")
end
-
- context 'when feature flag disabled' do
- before do
- stub_feature_flags(issue_zoom_integration: false)
- end
-
- include_examples 'skip silently'
- end
end
context 'with a Zoom link not at the end of the description' do