Skip to content

Commit d276c6e

Browse files
author
GitLab Bot
committed
Add latest changes from gitlab-org/gitlab@master
1 parent 966bb31 commit d276c6e

File tree

31 files changed

+287
-192
lines changed

31 files changed

+287
-192
lines changed

.rubocop_todo/gitlab/bounded_contexts.yml

-1
Original file line numberDiff line numberDiff line change
@@ -3426,7 +3426,6 @@ Gitlab/BoundedContexts:
34263426
- 'ee/app/workers/click_house/events_sync_worker.rb'
34273427
- 'ee/app/workers/click_house/rebuild_materialized_view_cron_worker.rb'
34283428
- 'ee/app/workers/concerns/elastic/bulk_cron_worker.rb'
3429-
- 'ee/app/workers/concerns/elastic/migration_create_index.rb'
34303429
- 'ee/app/workers/concerns/elastic/migration_options.rb'
34313430
- 'ee/app/workers/concerns/elastic/migration_state.rb'
34323431
- 'ee/app/workers/concerns/geo_backoff_delay.rb'

.rubocop_todo/lint/empty_block.yml

-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ Lint/EmptyBlock:
6161
- 'spec/lib/gitlab/chat_name_token_spec.rb'
6262
- 'spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb'
6363
- 'spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb'
64-
- 'spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb'
6564
- 'spec/lib/gitlab/ci/config/entry/retry_spec.rb'
6665
- 'spec/lib/gitlab/ci/config/entry/root_spec.rb'
6766
- 'spec/lib/gitlab/ci/config/entry/rules/rule/changes_spec.rb'

.rubocop_todo/rspec/feature_category.yml

-1
Original file line numberDiff line numberDiff line change
@@ -2061,7 +2061,6 @@ RSpec/FeatureCategory:
20612061
- 'spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb'
20622062
- 'spec/lib/gitlab/ci/build/rules/rule_spec.rb'
20632063
- 'spec/lib/gitlab/ci/build/status/reason_spec.rb'
2064-
- 'spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb'
20652064
- 'spec/lib/gitlab/ci/config/entry/allow_failure_spec.rb'
20662065
- 'spec/lib/gitlab/ci/config/entry/artifacts_spec.rb'
20672066
- 'spec/lib/gitlab/ci/config/entry/cache_spec.rb'

.rubocop_todo/rspec/repeated_example_group_description.yml

-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ RSpec/RepeatedExampleGroupDescription:
4141
- 'spec/lib/gitlab/auth/atlassian/auth_hash_spec.rb'
4242
- 'spec/lib/gitlab/auth/blocked_user_tracker_spec.rb'
4343
- 'spec/lib/gitlab/auth/ldap/dn_spec.rb'
44-
- 'spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb'
4544
- 'spec/lib/gitlab/ci/config/entry/jobs_spec.rb'
4645
- 'spec/lib/gitlab/ci/config/entry/needs_spec.rb'
4746
- 'spec/lib/gitlab/ci/config/entry/policy_spec.rb'

.rubocop_todo/search/namespaced_class.yml

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ Search/NamespacedClass:
4242
- 'ee/app/services/elastic/process_initial_bookkeeping_service.rb'
4343
- 'ee/app/services/protected_environments/search_service.rb'
4444
- 'ee/app/workers/concerns/elastic/bulk_cron_worker.rb'
45-
- 'ee/app/workers/concerns/elastic/migration_create_index.rb'
4645
- 'ee/app/workers/concerns/elastic/migration_options.rb'
4746
- 'ee/app/workers/concerns/elastic/migration_state.rb'
4847
- 'ee/app/workers/elastic/migration_worker.rb'

app/assets/javascripts/design_management/components/list/item.vue

+5-9
Original file line numberDiff line numberDiff line change
@@ -140,15 +140,11 @@ export default {
140140
>
141141
<gl-card
142142
class="js-design-list-item design-list-item gl-mb-0"
143-
header-class="gl-p-0 gl-flex gl-grow gl-items-center gl-justify-center gl-overflow-hidden gl-relative gl-rounded-t-base"
143+
header-class="gl-bg-subtle dark:gl-bg-gray-100 gl-p-0 gl-flex gl-grow gl-items-center gl-justify-center gl-overflow-hidden gl-relative gl-rounded-t-base"
144144
body-class="gl-p-0 gl-flex gl-w-full gl-bg-default gl-py-3 gl-px-4 gl-rounded-base"
145145
>
146146
<template #header>
147-
<div
148-
v-if="icon.name"
149-
data-testid="design-event"
150-
class="gl-absolute gl-right-3 gl-top-3 gl-mr-1"
151-
>
147+
<div v-if="icon.name" data-testid="design-event" class="gl-absolute gl-right-4 gl-top-3">
152148
<span :title="icon.tooltip" :aria-label="icon.tooltip">
153149
<gl-icon
154150
:name="icon.name"
@@ -181,15 +177,15 @@ export default {
181177
</template>
182178

183179
<template #default>
184-
<div class="str-truncated-100 gl-flex gl-flex-col" data-testid="design-file-name">
180+
<div class="gl-flex gl-flex-col gl-truncate" data-testid="design-file-name">
185181
<span
186182
v-gl-tooltip
187-
class="str-truncated-100 gl-font-semibold"
183+
class="gl-truncate gl-text-sm"
188184
:data-testid="`design-img-filename-${id}`"
189185
:title="filename"
190186
>{{ filename }}</span
191187
>
192-
<span v-if="updatedAt" class="str-truncated-100">
188+
<span v-if="updatedAt" class="gl-truncate">
193189
{{ __('Updated') }} <timeago :time="updatedAt" tooltip-placement="bottom" />
194190
</span>
195191
</div>

app/assets/javascripts/design_management/pages/index.vue

+13-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!-- eslint-disable vue/multi-word-component-names -->
22
<script>
3-
import { GlButton, GlAlert, GlLink, GlSprintf } from '@gitlab/ui';
3+
import { GlButton, GlAlert, GlFormCheckbox, GlLink, GlSprintf } from '@gitlab/ui';
44
import { GlBreakpointInstance } from '@gitlab/ui/dist/utils';
55
import VueDraggable from 'vuedraggable';
66
import permissionsQuery from 'shared_queries/design_management/design_permissions.query.graphql';
@@ -49,6 +49,7 @@ export default {
4949
components: {
5050
GlAlert,
5151
GlButton,
52+
GlFormCheckbox,
5253
GlSprintf,
5354
GlLink,
5455
CrudComponent,
@@ -158,6 +159,11 @@ export default {
158159
document.removeEventListener('paste', this.onDesignPaste);
159160
},
160161
methods: {
162+
checkboxAriaLabel(design) {
163+
return this.isDesignSelected(design)
164+
? s__('DesignManagement|Unselect the design')
165+
: s__('DesignManagement|Select the design');
166+
},
161167
resetFilesToBeSaved() {
162168
this.filesToBeSaved = [];
163169
},
@@ -460,7 +466,7 @@ export default {
460466
<li
461467
v-for="design in designs"
462468
:key="design.id"
463-
class="col-md-6 col-lg-3 js-design-tile gl-mt-5 gl-bg-transparent gl-shadow-none"
469+
class="col-sm-6 col-lg-3 js-design-tile gl-mt-5 gl-bg-transparent gl-shadow-none"
464470
>
465471
<design-dropzone
466472
:display-as-card="hasDesigns"
@@ -472,7 +478,7 @@ export default {
472478
<design
473479
v-bind="design"
474480
:is-uploading="isDesignToBeSaved(design.filename)"
475-
class="gl-bg-white"
481+
class="gl-bg-default"
476482
/>
477483
<template #upload-text="{ openFileUpload }">
478484
<gl-sprintf :message="$options.i18n.dropzoneDescriptionText">
@@ -485,15 +491,15 @@ export default {
485491
</template>
486492
</design-dropzone>
487493

488-
<input
494+
<gl-form-checkbox
489495
v-if="canSelectDesign(design.filename)"
496+
:id="`design-checkbox-${design.id}`"
490497
:name="design.filename"
491498
:checked="isDesignSelected(design.filename)"
492-
type="checkbox"
493-
class="design-checkbox gl-absolute gl-left-6 gl-top-4 gl-ml-2"
499+
class="no-drag gl-absolute gl-left-6 gl-top-3 gl-ml-2 gl-mt-2"
494500
data-testid="design-checkbox"
495501
:data-qa-design="design.filename"
496-
:aria-label="design.filename"
502+
:aria-label="checkboxAriaLabel(design.filename)"
497503
@change="changeSelectedDesigns(design.filename)"
498504
/>
499505
</li>

app/assets/javascripts/work_items/components/design_management/design_item.vue

+73-61
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
<script>
2-
import { GlLoadingIcon, GlIcon, GlIntersectionObserver, GlTooltipDirective } from '@gitlab/ui';
2+
import {
3+
GlCard,
4+
GlLoadingIcon,
5+
GlIcon,
6+
GlIntersectionObserver,
7+
GlTooltipDirective,
8+
} from '@gitlab/ui';
39
import { n__, __ } from '~/locale';
410
import Timeago from '~/vue_shared/components/time_ago_tooltip.vue';
511
import { ROUTES } from '../../constants';
612
713
export default {
814
components: {
15+
GlCard,
916
GlLoadingIcon,
1017
GlIntersectionObserver,
1118
GlIcon,
@@ -55,15 +62,15 @@ export default {
5562
required: false,
5663
default: null,
5764
},
65+
useRouter: {
66+
type: Boolean,
67+
required: true,
68+
},
5869
isDragging: {
5970
type: Boolean,
6071
required: false,
6172
default: false,
6273
},
63-
useRouter: {
64-
type: Boolean,
65-
required: true,
66-
},
6774
workItemWebUrl: {
6875
type: String,
6976
required: true,
@@ -162,65 +169,70 @@ export default {
162169
:is="linkComponent"
163170
:to="routerLinkProps"
164171
:href="nonRouterHref"
165-
class="card js-design-list-item design-list-item gl-mb-0 gl-cursor-pointer gl-text-default hover:gl-text-default"
172+
class="gl-block gl-rounded-base gl-text-default hover:gl-text-default focus:gl-focus"
166173
>
167-
<div
168-
class="card-body gl-relative gl-flex gl-items-center gl-justify-center gl-overflow-hidden gl-rounded-t-base gl-p-0"
174+
<gl-card
175+
class="js-design-list-item design-list-item gl-mb-0"
176+
header-class="gl-bg-subtle dark:gl-bg-gray-100 gl-p-0 gl-flex gl-grow gl-items-center gl-justify-center gl-overflow-hidden gl-relative gl-rounded-t-base"
177+
body-class="gl-p-0 gl-flex gl-w-full gl-bg-default gl-py-3 gl-px-4 gl-rounded-base"
169178
@click="onTileClick"
170179
>
171-
<div
172-
v-if="icon.name"
173-
data-testid="design-event"
174-
class="gl-absolute gl-right-3 gl-top-3 gl-mr-1"
175-
>
176-
<span :title="icon.tooltip" :aria-label="icon.tooltip">
177-
<gl-icon
178-
:name="icon.name"
179-
:size="16"
180-
:class="icon.classes"
181-
data-testid="design-status-icon"
182-
:data-qa-status="icon.name"
183-
/>
184-
</span>
185-
</div>
186-
<gl-intersection-observer
187-
class="gl-flex gl-grow gl-justify-center"
188-
data-testid="design-image"
189-
:data-qa-filename="filename"
190-
@appear="onAppear"
191-
>
192-
<gl-loading-icon v-if="showLoadingSpinner" size="lg" />
193-
<gl-icon v-else-if="showImageErrorIcon" name="media-broken" :size="32" variant="subtle" />
194-
<img
195-
v-show="showImage"
196-
:src="imageLink"
197-
:alt="filename"
198-
class="design-img gl-mx-auto gl-block gl-max-h-full gl-w-auto gl-max-w-full"
199-
:data-testid="`design-img-${id}`"
200-
@load="onImageLoad"
201-
@error="onImageError"
202-
/>
203-
</gl-intersection-observer>
204-
</div>
205-
<div class="card-footer gl-flex gl-w-full gl-bg-white gl-px-4 gl-py-3">
206-
<div class="str-truncated-100 gl-flex gl-flex-col">
207-
<span
208-
v-gl-tooltip
209-
class="str-truncated-100 gl-text-sm"
210-
:data-testid="`design-img-filename-${id}`"
211-
:title="filename"
212-
>{{ filename }}</span
180+
<template #header>
181+
<div
182+
v-if="icon.name"
183+
data-testid="design-event"
184+
class="gl-absolute gl-right-3 gl-top-2 gl-mr-1 gl-mt-1"
213185
>
214-
<span v-if="updatedAt" class="str-truncated-100">
215-
{{ __('Updated') }} <timeago :time="updatedAt" tooltip-placement="bottom" />
216-
</span>
217-
</div>
218-
<div v-if="notesCount" class="gl-ml-auto gl-flex gl-items-center gl-text-subtle">
219-
<gl-icon name="comments" class="gl-ml-2" />
220-
<span :aria-label="notesLabel" class="gl-ml-2 gl-text-sm">
221-
{{ notesCount }}
222-
</span>
223-
</div>
224-
</div>
186+
<span :title="icon.tooltip" :aria-label="icon.tooltip">
187+
<gl-icon
188+
:name="icon.name"
189+
:size="16"
190+
:class="icon.classes"
191+
data-testid="design-status-icon"
192+
:data-qa-status="icon.name"
193+
/>
194+
</span>
195+
</div>
196+
<gl-intersection-observer
197+
class="gl-flex gl-grow gl-items-center gl-justify-center"
198+
data-testid="design-image"
199+
:data-qa-filename="filename"
200+
@appear="onAppear"
201+
>
202+
<gl-loading-icon v-if="showLoadingSpinner" size="md" />
203+
<gl-icon v-else-if="showImageErrorIcon" name="media-broken" :size="32" variant="subtle" />
204+
<img
205+
v-show="showImage"
206+
:src="imageLink"
207+
:alt="filename"
208+
class="design-img gl-mx-auto gl-block gl-max-h-full gl-w-auto gl-max-w-full"
209+
:data-testid="`design-img-${id}`"
210+
@load="onImageLoad"
211+
@error="onImageError"
212+
/>
213+
</gl-intersection-observer>
214+
</template>
215+
216+
<template #default>
217+
<div class="gl-flex gl-flex-col gl-truncate">
218+
<span
219+
v-gl-tooltip
220+
class="gl-truncate gl-text-sm"
221+
:data-testid="`design-img-filename-${id}`"
222+
:title="filename"
223+
>{{ filename }}</span
224+
>
225+
<span v-if="updatedAt" class="gl-truncate">
226+
{{ __('Updated') }} <timeago :time="updatedAt" tooltip-placement="bottom" />
227+
</span>
228+
</div>
229+
<div v-if="notesCount" class="gl-ml-auto gl-flex gl-items-center gl-text-subtle">
230+
<gl-icon name="comments" class="gl-ml-2" />
231+
<span :aria-label="notesLabel" class="gl-ml-2 gl-text-sm">
232+
{{ notesCount }}
233+
</span>
234+
</div>
235+
</template>
236+
</gl-card>
225237
</component>
226238
</template>

app/assets/javascripts/work_items/components/design_management/design_management_widget.vue

+3-1
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ export default {
490490
<li
491491
v-for="design in designs"
492492
:key="design.id"
493-
class="col-md-6 col-lg-3 js-design-tile gl-bg-transparent gl-px-3 gl-shadow-none"
493+
class="col-sm-6 col-lg-3 js-design-tile gl-bg-transparent gl-px-3 gl-shadow-none"
494494
@mousedown="onMouseDown"
495495
@pointerup="onPointerUp"
496496
>
@@ -509,9 +509,11 @@ export default {
509509
<gl-form-checkbox
510510
v-if="isLatestVersion"
511511
:id="`design-checkbox-${design.id}`"
512+
:name="design.filename"
512513
:checked="isDesignSelected(design.filename)"
513514
class="no-drag gl-absolute gl-left-5 gl-top-4 gl-ml-2"
514515
data-testid="design-checkbox"
516+
:data-qa-design="design.filename"
515517
:aria-label="checkboxAriaLabel(design.filename)"
516518
@change="changeSelectedDesigns(design.filename)"
517519
/>

app/models/concerns/cached_commit.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
module CachedCommit
44
extend ActiveSupport::Concern
55

6-
def to_hash
7-
Gitlab::Git::Commit::SERIALIZE_KEYS.index_with do |key|
6+
def to_hash(exclude_keys: [])
7+
(Gitlab::Git::Commit::SERIALIZE_KEYS - exclude_keys).index_with do |key|
88
public_send(key) # rubocop:disable GitlabSecurity/PublicSend
99
end
1010
end

app/models/merge_request_diff_commit.rb

+20-10
Original file line numberDiff line numberDiff line change
@@ -134,24 +134,34 @@ def committer_email
134134
end
135135

136136
def message
137-
Gitlab::AppLogger.info(
138-
event: 'mrdc_message_method',
139-
message: "mrdc#message called via #{caller_locations.reject { |line| line.path.include?('/gems/') }.first}"
140-
)
141-
142-
if ::Feature.enabled?(:disable_message_attribute_on_mr_diff_commits, project)
143-
""
144-
else
145-
read_attribute("message")
137+
if ::Feature.enabled?(:commit_message_logger, type: :ops) # rubocop:disable Gitlab/FeatureFlagWithoutActor -- TODO: No actor needed
138+
Gitlab::AppLogger.info(
139+
event: 'mrdc_message_method',
140+
message: "mrdc#message called via #{caller_locations.reject { |line| line.path.include?('/gems/') }.first(4)}"
141+
)
146142
end
143+
144+
fetch_message
147145
end
148146

149147
def to_hash
150-
super.merge({ 'id' => sha })
148+
super(exclude_keys: [:message]).merge({
149+
'id' => sha,
150+
message: fetch_message,
151+
log_message: ::Feature.enabled?(:commit_message_logger, type: :ops) # rubocop:disable Gitlab/FeatureFlagWithoutActor -- TODO: No actor needed
152+
})
151153
end
152154

153155
private
154156

157+
def fetch_message
158+
if ::Feature.enabled?(:disable_message_attribute_on_mr_diff_commits, project)
159+
""
160+
else
161+
read_attribute("message")
162+
end
163+
end
164+
155165
# As of %17.10, we still don't have `project_id` on merge_request_diff_commit
156166
# records. Until we do, we have to fetch it from merge_request_diff.
157167
#
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
name: commit_message_logger
3+
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/520302
4+
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/183530
5+
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/523395
6+
milestone: '17.10'
7+
group: group::source code
8+
type: ops
9+
default_enabled: false

0 commit comments

Comments
 (0)