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
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-08-07 12:07:25 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-08-07 12:07:25 +0300
commit929712792964c31c895cb83ebf0862da038c57a0 (patch)
tree030e74b85ebcc922e08e1d1f1da267c64dc85655 /app
parent97815325b875a7bde0793cb0777e36b275ae1c6c (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue6
-rw-r--r--app/assets/javascripts/pipelines/components/pipeline_tabs.vue17
-rw-r--r--app/assets/javascripts/pipelines/constants.js2
-rw-r--r--app/assets/javascripts/vue_shared/issuable/show/components/issuable_header.vue2
-rw-r--r--app/services/concerns/merge_requests/error_logger.rb31
-rw-r--r--app/services/merge_requests/base_service.rb27
-rw-r--r--app/services/merge_requests/merge_base_service.rb7
-rw-r--r--app/services/merge_requests/squash_service.rb20
-rw-r--r--app/views/admin/application_settings/_localization.html.haml2
-rw-r--r--app/views/devise/shared/_signup_omniauth_provider_list.haml4
-rw-r--r--app/views/shared/issue_type/_details_header.html.haml2
11 files changed, 78 insertions, 42 deletions
diff --git a/app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue b/app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue
index ec7000120f1..f84ae13180d 100644
--- a/app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue
+++ b/app/assets/javascripts/pipelines/components/jobs/failed_jobs_table.vue
@@ -3,10 +3,11 @@ import { GlButton, GlLink, GlTableLite } from '@gitlab/ui';
import SafeHtml from '~/vue_shared/directives/safe_html';
import { __, s__ } from '~/locale';
import { createAlert } from '~/alert';
+import Tracking from '~/tracking';
import { redirectTo } from '~/lib/utils/url_utility'; // eslint-disable-line import/no-deprecated
import CiBadgeLink from '~/vue_shared/components/ci_badge_link.vue';
import RetryFailedJobMutation from '../../graphql/mutations/retry_failed_job.mutation.graphql';
-import { DEFAULT_FIELDS } from '../../constants';
+import { DEFAULT_FIELDS, TRACKING_CATEGORIES } from '../../constants';
export default {
fields: DEFAULT_FIELDS,
@@ -20,6 +21,7 @@ export default {
directives: {
SafeHtml,
},
+ mixins: [Tracking.mixin()],
props: {
failedJobs: {
type: Array,
@@ -28,6 +30,8 @@ export default {
},
methods: {
async retryJob(id) {
+ this.track('click_retry', { label: TRACKING_CATEGORIES.failed });
+
try {
const {
data: {
diff --git a/app/assets/javascripts/pipelines/components/pipeline_tabs.vue b/app/assets/javascripts/pipelines/components/pipeline_tabs.vue
index e14644ae0d5..35dde6379dd 100644
--- a/app/assets/javascripts/pipelines/components/pipeline_tabs.vue
+++ b/app/assets/javascripts/pipelines/components/pipeline_tabs.vue
@@ -1,12 +1,14 @@
<script>
import { GlBadge, GlTabs, GlTab } from '@gitlab/ui';
import { __ } from '~/locale';
+import Tracking from '~/tracking';
import {
failedJobsTabName,
jobsTabName,
needsTabName,
pipelineTabName,
testReportTabName,
+ TRACKING_CATEGORIES,
} from '../constants';
export default {
@@ -31,6 +33,7 @@ export default {
GlTab,
GlTabs,
},
+ mixins: [Tracking.mixin()],
inject: ['defaultTabValue', 'failedJobsCount', 'totalJobCount', 'testsCount'],
data() {
return {
@@ -56,6 +59,16 @@ export default {
this.$router.push({ name: tabName });
},
+ failedJobsTabClick() {
+ this.track('click_tab', { label: TRACKING_CATEGORIES.failed });
+
+ this.navigateTo(this.$options.tabNames.failures);
+ },
+ testsTabClick() {
+ this.track('click_tab', { label: TRACKING_CATEGORIES.tests });
+
+ this.navigateTo(this.$options.tabNames.tests);
+ },
},
};
</script>
@@ -100,7 +113,7 @@ export default {
:active="isActive($options.tabNames.failures)"
data-testid="failed-jobs-tab"
lazy
- @click="navigateTo($options.tabNames.failures)"
+ @click="failedJobsTabClick"
>
<template #title>
<span class="gl-mr-2">{{ $options.i18n.tabs.failedJobsTitle }}</span>
@@ -112,7 +125,7 @@ export default {
:active="isActive($options.tabNames.tests)"
data-testid="tests-tab"
lazy
- @click="navigateTo($options.tabNames.tests)"
+ @click="testsTabClick"
>
<template #title>
<span class="gl-mr-2">{{ $options.i18n.tabs.testsTitle }}</span>
diff --git a/app/assets/javascripts/pipelines/constants.js b/app/assets/javascripts/pipelines/constants.js
index a6dd835bb15..d43e29dfae4 100644
--- a/app/assets/javascripts/pipelines/constants.js
+++ b/app/assets/javascripts/pipelines/constants.js
@@ -109,6 +109,8 @@ export const TRACKING_CATEGORIES = {
table: 'pipelines_table_component',
tabs: 'pipelines_filter_tabs',
search: 'pipelines_filtered_search',
+ failed: 'pipeline_failed_jobs_tab',
+ tests: 'pipeline_tests_tab',
};
// Pipeline Mini Graph
diff --git a/app/assets/javascripts/vue_shared/issuable/show/components/issuable_header.vue b/app/assets/javascripts/vue_shared/issuable/show/components/issuable_header.vue
index 1b7fecfde98..27276e55b13 100644
--- a/app/assets/javascripts/vue_shared/issuable/show/components/issuable_header.vue
+++ b/app/assets/javascripts/vue_shared/issuable/show/components/issuable_header.vue
@@ -192,7 +192,7 @@ export default {
>
<gl-button
icon="chevron-double-lg-left"
- class="gutter-toggle gl-display-block gl-sm-display-none!"
+ class="gl-ml-auto gl-display-block gl-sm-display-none!"
:aria-label="__('Expand sidebar')"
@click="handleRightSidebarToggleClick"
/>
diff --git a/app/services/concerns/merge_requests/error_logger.rb b/app/services/concerns/merge_requests/error_logger.rb
new file mode 100644
index 00000000000..c08525bf413
--- /dev/null
+++ b/app/services/concerns/merge_requests/error_logger.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+module MergeRequests
+ module ErrorLogger
+ def log_error(exception:, message:, save_message_on_model: false)
+ reference = merge_request.to_reference(full: true)
+ data = {
+ class: self.class.name,
+ message: message,
+ merge_request_id: merge_request.id,
+ merge_request: reference,
+ save_message_on_model: save_message_on_model
+ }
+
+ if exception
+ Gitlab::ApplicationContext.with_context(user: current_user) do
+ Gitlab::ErrorTracking.track_exception(exception, data)
+ end
+
+ data[:"exception.message"] = exception.message
+ end
+
+ # TODO: Deprecate Gitlab::GitLogger since ErrorTracking should suffice:
+ # https://gitlab.com/gitlab-org/gitlab/-/issues/216379
+ data[:message] = "#{self.class.name} error (#{reference}): #{message}"
+ Gitlab::GitLogger.error(data)
+
+ merge_request.update(merge_error: message) if save_message_on_model
+ end
+ end
+end
diff --git a/app/services/merge_requests/base_service.rb b/app/services/merge_requests/base_service.rb
index aaa91548d19..7074bf5bd29 100644
--- a/app/services/merge_requests/base_service.rb
+++ b/app/services/merge_requests/base_service.rb
@@ -4,6 +4,7 @@ module MergeRequests
class BaseService < ::IssuableBaseService
extend ::Gitlab::Utils::Override
include MergeRequests::AssignsMergeParams
+ include MergeRequests::ErrorLogger
delegate :repository, to: :project
@@ -260,32 +261,6 @@ module MergeRequests
end
end
- def log_error(exception:, message:, save_message_on_model: false)
- reference = merge_request.to_reference(full: true)
- data = {
- class: self.class.name,
- message: message,
- merge_request_id: merge_request.id,
- merge_request: reference,
- save_message_on_model: save_message_on_model
- }
-
- if exception
- Gitlab::ApplicationContext.with_context(user: current_user) do
- Gitlab::ErrorTracking.track_exception(exception, data)
- end
-
- data[:"exception.message"] = exception.message
- end
-
- # TODO: Deprecate Gitlab::GitLogger since ErrorTracking should suffice:
- # https://gitlab.com/gitlab-org/gitlab/-/issues/216379
- data[:message] = "#{self.class.name} error (#{reference}): #{message}"
- Gitlab::GitLogger.error(data)
-
- merge_request.update(merge_error: message) if save_message_on_model
- end
-
def trigger_merge_request_reviewers_updated(merge_request)
GraphqlTriggers.merge_request_reviewers_updated(merge_request)
end
diff --git a/app/services/merge_requests/merge_base_service.rb b/app/services/merge_requests/merge_base_service.rb
index 2a3c1e8bc26..fa0a4f808e2 100644
--- a/app/services/merge_requests/merge_base_service.rb
+++ b/app/services/merge_requests/merge_base_service.rb
@@ -60,8 +60,11 @@ module MergeRequests
end
def squash_sha!
- params[:merge_request] = merge_request
- squash_result = ::MergeRequests::SquashService.new(project: project, current_user: current_user, params: params).execute
+ squash_result = ::MergeRequests::SquashService.new(
+ merge_request: merge_request,
+ current_user: current_user,
+ commit_message: params[:squash_commit_message]
+ ).execute
case squash_result[:status]
when :success
diff --git a/app/services/merge_requests/squash_service.rb b/app/services/merge_requests/squash_service.rb
index f04682bf08a..0b1aefb30d7 100644
--- a/app/services/merge_requests/squash_service.rb
+++ b/app/services/merge_requests/squash_service.rb
@@ -1,7 +1,17 @@
# frozen_string_literal: true
module MergeRequests
- class SquashService < MergeRequests::BaseService
+ class SquashService
+ include BaseServiceUtility
+ include MergeRequests::ErrorLogger
+
+ def initialize(merge_request:, current_user:, commit_message:)
+ @merge_request = merge_request
+ @target_project = merge_request.target_project
+ @current_user = current_user
+ @commit_message = commit_message
+ end
+
def execute
# If performing a squash would result in no change, then
# immediately return a success message without performing a squash
@@ -16,6 +26,8 @@ module MergeRequests
private
+ attr_reader :merge_request, :target_project, :current_user, :commit_message
+
def squash!
squash_sha = repository.squash(current_user, merge_request, message)
@@ -34,12 +46,8 @@ module MergeRequests
target_project.repository
end
- def merge_request
- params[:merge_request]
- end
-
def message
- params[:squash_commit_message].presence || merge_request.default_squash_commit_message(user: current_user)
+ commit_message.presence || merge_request.default_squash_commit_message(user: current_user)
end
end
end
diff --git a/app/views/admin/application_settings/_localization.html.haml b/app/views/admin/application_settings/_localization.html.haml
index 19d321ca205..4002aa076f7 100644
--- a/app/views/admin/application_settings/_localization.html.haml
+++ b/app/views/admin/application_settings/_localization.html.haml
@@ -7,7 +7,7 @@
= f.select :first_day_of_week, first_day_of_week_choices, {}, class: 'form-control'
.form-text.text-muted
= _('Default first day of the week in calendars and date pickers.')
- = link_to _('Learn more.'), help_page_path('administration/settings/index.md', anchor: 'default-first-day-of-the-week'), target: '_blank', rel: 'noopener noreferrer'
+ = link_to _('Learn more.'), help_page_path('administration/settings/index.md', anchor: 'change-the-default-first-day-of-the-week'), target: '_blank', rel: 'noopener noreferrer'
.form-group
= f.label :time_tracking, _('Time tracking'), class: 'label-bold'
diff --git a/app/views/devise/shared/_signup_omniauth_provider_list.haml b/app/views/devise/shared/_signup_omniauth_provider_list.haml
index 60c37316c62..e8c82e456ae 100644
--- a/app/views/devise/shared/_signup_omniauth_provider_list.haml
+++ b/app/views/devise/shared/_signup_omniauth_provider_list.haml
@@ -4,7 +4,7 @@
= _("Register with:")
.gl-text-center.gl-ml-auto.gl-mr-auto
- providers.each do |provider|
- = render Pajamas::ButtonComponent.new(href: omniauth_authorize_path(:user, provider, register_omniauth_params(local_assigns)), method: :post, variant: :default, button_options: { class: "gl-w-full gl-mb-4 js-oauth-login #{qa_selector_for_provider(provider)}", data: { provider: provider, track_action: "#{provider}_sso", track_label: tracking_label}, id: "oauth-login-#{provider}" }) do
+ = button_to omniauth_authorize_path(:user, provider, register_omniauth_params(local_assigns)), class: "btn gl-button btn-default gl-w-full gl-mb-4 js-oauth-login #{qa_selector_for_provider(provider)}", data: { provider: provider, track_action: "#{provider}_sso", track_label: tracking_label }, id: "oauth-login-#{provider}" do
- if provider_has_icon?(provider)
= provider_image_tag(provider)
%span.gl-button-text
@@ -14,7 +14,7 @@
= _("Create an account using:")
.gl-display-flex.gl-justify-content-between.gl-flex-wrap
- providers.each do |provider|
- = render Pajamas::ButtonComponent.new(href: omniauth_authorize_path(:user, provider, register_omniauth_params(local_assigns)), method: :post, variant: :default, button_options: { class: "gl-w-full gl-mb-4 js-oauth-login #{qa_selector_for_provider(provider)}", data: { provider: provider, track_action: "#{provider}_sso", track_label: tracking_label}, id: "oauth-login-#{provider}" }) do
+ = button_to omniauth_authorize_path(:user, provider, register_omniauth_params(local_assigns)), class: "btn gl-button btn-default gl-w-full gl-mb-4 js-oauth-login #{qa_selector_for_provider(provider)}", data: { provider: provider, track_action: "#{provider}_sso", track_label: tracking_label }, id: "oauth-login-#{provider}" do
- if provider_has_icon?(provider)
= provider_image_tag(provider)
%span.gl-button-text
diff --git a/app/views/shared/issue_type/_details_header.html.haml b/app/views/shared/issue_type/_details_header.html.haml
index 4997d429587..558287480e1 100644
--- a/app/views/shared/issue_type/_details_header.html.haml
+++ b/app/views/shared/issue_type/_details_header.html.haml
@@ -16,6 +16,6 @@
#js-issuable-header-warnings{ data: { hidden: issue_hidden?(issuable).to_s } }
= issuable_meta(issuable, @project)
- = render Pajamas::ButtonComponent.new(href: '#', icon: 'chevron-double-lg-left', button_options: { class: 'gl-float-right gl-display-block gl-sm-display-none! gutter-toggle issuable-gutter-toggle js-sidebar-toggle' })
+ = render Pajamas::ButtonComponent.new(href: '#', icon: 'chevron-double-lg-left', button_options: { class: 'gl-ml-auto gl-display-block gl-sm-display-none! js-sidebar-toggle' })
.js-issue-header-actions{ data: issue_header_actions_data(@project, issuable, current_user, @issuable_sidebar) }