Skip to content

Commit c54e728

Browse files
author
GitLab Bot
committed
Add latest changes from gitlab-org/gitlab@master
1 parent fa7c331 commit c54e728

File tree

88 files changed

+1332
-407
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+1332
-407
lines changed

Diff for: .rubocop_todo/lint/unused_block_argument.yml

-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ Lint/UnusedBlockArgument:
8181
- 'app/views/projects/tags/_tag.atom.builder'
8282
- 'app/workers/process_commit_worker.rb'
8383
- 'config/application.rb'
84-
- 'config/initializers/0_log_deprecations.rb'
8584
- 'config/initializers/content_security_policy.rb'
8685
- 'config/initializers/doorkeeper.rb'
8786
- 'config/initializers/lograge.rb'

Diff for: .rubocop_todo/rspec/missing_feature_category.yml

-1
Original file line numberDiff line numberDiff line change
@@ -1029,7 +1029,6 @@ RSpec/MissingFeatureCategory:
10291029
- 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb'
10301030
- 'ee/spec/lib/gitlab/geo/log_cursor/events/reset_checksum_event_spec.rb'
10311031
- 'ee/spec/lib/gitlab/geo/log_cursor/lease_spec.rb'
1032-
- 'ee/spec/lib/gitlab/geo/log_cursor/logger_spec.rb'
10331032
- 'ee/spec/lib/gitlab/geo/log_helpers_spec.rb'
10341033
- 'ee/spec/lib/gitlab/geo/logger_spec.rb'
10351034
- 'ee/spec/lib/gitlab/geo/oauth/login_state_spec.rb'

Diff for: GITALY_SERVER_VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
a41c0909051714c0d6b58f8000589f82a66804a5
1+
9b1bb2480275c22dd2157e08a2ec2f7db835657b

Diff for: Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ gem 'pg_query', '~> 2.2', '>= 2.2.1'
348348

349349
gem 'premailer-rails', '~> 1.10.3'
350350

351-
gem 'gitlab-labkit', '~> 0.29.0'
351+
gem 'gitlab-labkit', '~> 0.30.1'
352352
gem 'thrift', '>= 0.16.0'
353353

354354
# I18n

Diff for: Gemfile.checksum

+1-1
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@
203203
{"name":"gitlab-dangerfiles","version":"3.6.7","platform":"ruby","checksum":"ebd898ec0e8ed3edea281b2f703000c502c6b412cbcadc1265ddbc31ffb0c579"},
204204
{"name":"gitlab-experiment","version":"0.7.1","platform":"ruby","checksum":"166dddb3aa83428bcaa93c35684ed01dc4d61f321fd2ae40b020806dc54a7824"},
205205
{"name":"gitlab-fog-azure-rm","version":"1.4.0","platform":"ruby","checksum":"af4163c32b028aa5208814a3f4765a5817d50527e6c61931f766bf18a2e0eb7e"},
206-
{"name":"gitlab-labkit","version":"0.29.0","platform":"ruby","checksum":"eb19ac5c11698683775ab847a3441d7af87d72fbaec38d635149fb65c5d9b427"},
206+
{"name":"gitlab-labkit","version":"0.30.1","platform":"ruby","checksum":"bdedbd86014c83dfd6a50d20dbc1709697bba2bb9e3666383e5f28cbd312b113"},
207207
{"name":"gitlab-license","version":"2.2.1","platform":"ruby","checksum":"39fcf6be8b2887df8afe01b5dcbae8d08b7c5d937ff56b0fb40484a8c4f02d30"},
208208
{"name":"gitlab-mail_room","version":"0.0.9","platform":"ruby","checksum":"6700374b5c0aa9d9ad4e711aeb677f0b7d415a6d01d3baa699efab25349d851c"},
209209
{"name":"gitlab-markup","version":"1.8.1","platform":"ruby","checksum":"ab1f9fd016977497c2af25b76341dea670533014f406861834a0bd99f646707b"},

Diff for: Gemfile.lock

+2-2
Original file line numberDiff line numberDiff line change
@@ -584,7 +584,7 @@ GEM
584584
fog-json (~> 1.2.0)
585585
mime-types
586586
ms_rest_azure (~> 0.12.0)
587-
gitlab-labkit (0.29.0)
587+
gitlab-labkit (0.30.1)
588588
actionpack (>= 5.0.0, < 8.0.0)
589589
activesupport (>= 5.0.0, < 8.0.0)
590590
grpc (>= 1.37)
@@ -1679,7 +1679,7 @@ DEPENDENCIES
16791679
gitlab-dangerfiles (~> 3.6.7)
16801680
gitlab-experiment (~> 0.7.1)
16811681
gitlab-fog-azure-rm (~> 1.4.0)
1682-
gitlab-labkit (~> 0.29.0)
1682+
gitlab-labkit (~> 0.30.1)
16831683
gitlab-license (~> 2.2.1)
16841684
gitlab-mail_room (~> 0.0.9)
16851685
gitlab-markup (~> 1.8.0)

Diff for: app/assets/javascripts/behaviors/markdown/render_math.js

+36-13
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1+
import { escape } from 'lodash';
12
import { spriteIcon } from '~/lib/utils/common_utils';
23
import { differenceInMilliseconds } from '~/lib/utils/datetime_utility';
3-
import { s__ } from '~/locale';
4+
import { s__, sprintf } from '~/locale';
45
import { unrestrictedPages } from './constants';
56

6-
// Renders math using KaTeX in any element with the
7-
// `js-render-math` class
7+
// Renders math using KaTeX in an element.
88
//
9-
// ### Example Markup
10-
//
11-
// <code class="js-render-math"></div>
9+
// Typically for elements with the `js-render-math` class such as
10+
// <code class="js-render-math"></code>
1211
//
12+
// See app/assets/javascripts/behaviors/markdown/render_gfm.js
1313

1414
const MAX_MATH_CHARS = 1000;
15+
const MAX_MACRO_EXPANSIONS = 1000;
16+
const MAX_USER_SPECIFIED_EMS = 20;
1517
const MAX_RENDER_TIME_MS = 2000;
1618

1719
// Wait for the browser to reflow the layout. Reflowing SVG takes time.
@@ -74,13 +76,23 @@ class SafeMathRenderer {
7476
const { parentNode } = el;
7577
parentNode.replaceChild(wrapperElement, el);
7678

79+
let message;
80+
if (text.length > MAX_MATH_CHARS) {
81+
message = sprintf(
82+
s__(
83+
'math|This math block exceeds %{maxMathChars} characters, and may cause performance issues on this page.',
84+
),
85+
{ maxMathChars: MAX_MATH_CHARS },
86+
);
87+
} else {
88+
message = s__('math|Displaying this math block may cause performance issues on this page.');
89+
}
90+
7791
const html = `
7892
<div class="alert gl-alert gl-alert-warning alert-dismissible lazy-render-math-container js-lazy-render-math-container fade show" role="alert">
7993
${spriteIcon('warning', 'text-warning-600 s16 gl-alert-icon')}
8094
<div class="display-flex gl-alert-content">
81-
<div>${s__(
82-
'math|Displaying this math block may cause performance issues on this page',
83-
)}</div>
95+
<div>${message}</div>
8496
<div class="gl-alert-actions">
8597
<button class="js-lazy-render-math btn gl-alert-action btn-confirm btn-md gl-button">Display anyway</button>
8698
</div>
@@ -117,8 +129,10 @@ class SafeMathRenderer {
117129
displayContainer.innerHTML = this.katex.renderToString(text, {
118130
displayMode: el.dataset.mathStyle === 'display',
119131
throwOnError: true,
120-
maxSize: 20,
121-
maxExpand: 20,
132+
maxSize: MAX_USER_SPECIFIED_EMS,
133+
// See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111107 for
134+
// reasoning behind this value
135+
maxExpand: MAX_MACRO_EXPANSIONS,
122136
trust: (context) =>
123137
// this config option restores the KaTeX pre-v0.11.0
124138
// behavior of allowing certain commands and protocols
@@ -128,8 +142,17 @@ class SafeMathRenderer {
128142
});
129143
} catch (e) {
130144
// Don't show a flash for now because it would override an existing flash message
131-
el.textContent = s__('math|There was an error rendering this math block');
132-
// el.style.color = '#d00';
145+
if (e.message.match(/Too many expansions/)) {
146+
// this is controlled by the maxExpand parameter
147+
el.textContent = s__('math|Too many expansions. Consider using multiple math blocks.');
148+
} else {
149+
// According to https://katex.org/docs/error.html, we need to ensure that
150+
// the error message is escaped.
151+
el.textContent = sprintf(
152+
s__('math|There was an error rendering this math block. %{katexMessage}'),
153+
{ katexMessage: escape(e.message) },
154+
);
155+
}
133156
el.className = 'katex-error';
134157
}
135158

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<script>
2+
import { GlSprintf } from '@gitlab/ui';
3+
4+
export default {
5+
name: 'BoldText',
6+
components: {
7+
GlSprintf,
8+
},
9+
props: {
10+
message: {
11+
type: String,
12+
required: true,
13+
},
14+
},
15+
};
16+
</script>
17+
18+
<template>
19+
<span>
20+
<gl-sprintf :message="message">
21+
<template #bold="{ content }">
22+
<span class="gl-font-weight-bold" v-text="content"></span>
23+
</template>
24+
</gl-sprintf>
25+
</span>
26+
</template>

Diff for: app/assets/javascripts/vue_merge_request_widget/components/states/merge_checks_failed.vue

+11-7
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
<script>
22
import { s__ } from '~/locale';
3+
import BoldText from '~/vue_merge_request_widget/components/bold_text.vue';
34
import StateContainer from '../state_container.vue';
45
import { DETAILED_MERGE_STATUS } from '../../constants';
56
67
export default {
78
i18n: {
8-
approvalNeeded: s__('mrWidget|Merge blocked: all required approvals must be given.'),
9+
approvalNeeded: s__(
10+
'mrWidget|%{boldStart}Merge blocked:%{boldEnd} all required approvals must be given.',
11+
),
912
blockingMergeRequests: s__(
10-
'mrWidget|Merge blocked: you can only merge after the above items are resolved.',
13+
'mrWidget|%{boldStart}Merge blocked:%{boldEnd} you can only merge after the above items are resolved.',
14+
),
15+
externalStatusChecksFailed: s__(
16+
'mrWidget|%{boldStart}Merge blocked:%{boldEnd} all status checks must pass.',
1117
),
12-
externalStatusChecksFailed: s__('mrWidget|Merge blocked: all status checks must pass.'),
1318
},
1419
components: {
20+
BoldText,
1521
StateContainer,
1622
},
1723
props: {
@@ -38,10 +44,8 @@ export default {
3844

3945
<template>
4046
<state-container :mr="mr" status="failed">
41-
<span
42-
class="gl-ml-3 gl-font-weight-bold gl-w-100 gl-flex-grow-1 gl-md-mr-3 gl-ml-0! gl-text-body!"
43-
>
44-
{{ failedText }}
47+
<span class="gl-ml-3 gl-w-100 gl-flex-grow-1 gl-md-mr-3 gl-ml-0! gl-text-body!">
48+
<bold-text :message="failedText" />
4549
</span>
4650
</state-container>
4751
</template>

Diff for: app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_archived.vue

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
<script>
2+
import { s__ } from '~/locale';
3+
import BoldText from '~/vue_merge_request_widget/components/bold_text.vue';
24
import StateContainer from '../state_container.vue';
35
6+
const message = s__(
7+
'mrWidget|%{boldStart}Merge unavailable:%{boldEnd} merge requests are read-only on archived projects.',
8+
);
9+
410
export default {
511
name: 'MRWidgetArchived',
12+
message,
613
components: {
14+
BoldText,
715
StateContainer,
816
},
917
props: {
@@ -17,8 +25,6 @@ export default {
1725

1826
<template>
1927
<state-container :mr="mr" status="failed">
20-
<span class="gl-font-weight-bold">
21-
{{ s__('mrWidget|Merge unavailable: merge requests are read-only on archived projects.') }}
22-
</span>
28+
<bold-text :message="$options.message" />
2329
</state-container>
2430
</template>

Diff for: app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue

+1-3
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ export default {
1616
</script>
1717
<template>
1818
<state-container :mr="mr" status="loading">
19-
<span class="gl-font-weight-bold">
20-
{{ s__('mrWidget|Checking if merge request can be merged…') }}
21-
</span>
19+
{{ s__('mrWidget|Checking if merge request can be merged…') }}
2220
</state-container>
2321
</template>

Diff for: app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_conflicts.vue

+19-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<script>
22
import { GlButton, GlSkeletonLoader } from '@gitlab/ui';
3+
import { s__ } from '~/locale';
4+
import BoldText from '~/vue_merge_request_widget/components/bold_text.vue';
35
import mergeRequestQueryVariablesMixin from '../../mixins/merge_request_query_variables';
46
import userPermissionsQuery from '../../queries/permissions.query.graphql';
57
import conflictsStateQuery from '../../queries/states/conflicts.query.graphql';
@@ -8,6 +10,7 @@ import StateContainer from '../state_container.vue';
810
export default {
911
name: 'MRWidgetConflicts',
1012
components: {
13+
BoldText,
1114
GlSkeletonLoader,
1215
GlButton,
1316
StateContainer,
@@ -55,6 +58,17 @@ export default {
5558
);
5659
},
5760
},
61+
i18n: {
62+
shouldBeRebased: s__(
63+
'mrWidget|%{boldStart}Merge blocked:%{boldEnd} fast-forward merge is not possible. To merge this request, first rebase locally.',
64+
),
65+
shouldBeResolved: s__(
66+
'mrWidget|%{boldStart}Merge blocked:%{boldEnd} merge conflicts must be resolved.',
67+
),
68+
usersWriteBranches: s__(
69+
'mrWidget|%{boldStart}Merge blocked:%{boldEnd} Users who can write to the source or target branches can resolve the conflicts.',
70+
),
71+
},
5872
};
5973
</script>
6074
<template>
@@ -67,21 +81,14 @@ export default {
6781
</gl-skeleton-loader>
6882
</template>
6983
<template v-if="!isLoading">
70-
<span v-if="state.shouldBeRebased" class="bold gl-ml-0! gl-text-body!">
71-
{{
72-
s__(`mrWidget|Merge blocked: fast-forward merge is not possible.
73-
To merge this request, first rebase locally.`)
74-
}}
84+
<span v-if="state.shouldBeRebased" class="gl-ml-0! gl-text-body!">
85+
<bold-text :message="$options.i18n.shouldBeRebased" />
7586
</span>
7687
<template v-else>
77-
<span class="bold gl-ml-0! gl-text-body! gl-flex-grow-1 gl-w-full gl-md-w-auto gl-mr-2">
78-
{{ s__('mrWidget|Merge blocked: merge conflicts must be resolved.') }}
88+
<span class="gl-ml-0! gl-text-body! gl-flex-grow-1 gl-w-full gl-md-w-auto gl-mr-2">
89+
<bold-text :message="$options.i18n.shouldBeResolved" />
7990
<span v-if="!userPermissions.canMerge">
80-
{{
81-
s__(
82-
`mrWidget|Users who can write to the source or target branches can resolve the conflicts.`,
83-
)
84-
}}
91+
{{ $options.i18n.usersWriteBranches }}
8592
</span>
8693
</span>
8794
</template>

Diff for: app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_failed_to_merge.vue

+8-6
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,14 @@ export default {
101101
</span>
102102
</state-container>
103103
<state-container v-else :mr="mr" status="failed" :actions="actions">
104-
<span class="gl-font-weight-bold">
105-
<span v-if="mr.mergeError" class="has-error-message" data-testid="merge-error">
106-
{{ mergeError }}
107-
</span>
108-
<span v-else> {{ s__('mrWidget|Merge failed.') }} </span>
109-
<span :class="{ 'has-custom-error': mr.mergeError }"> {{ timerText }} </span>
104+
<span
105+
v-if="mr.mergeError"
106+
class="has-error-message gl-font-weight-bold"
107+
data-testid="merge-error"
108+
>
109+
{{ mergeError }}
110110
</span>
111+
<span v-else class="gl-font-weight-bold"> {{ s__('mrWidget|Merge failed.') }} </span>
112+
<span :class="{ 'has-custom-error': mr.mergeError }"> {{ timerText }} </span>
111113
</state-container>
112114
</template>

Diff for: app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_merging.vue

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import { refreshUserMergeRequestCounts } from '~/commons/nav/user_merge_requests';
33
import simplePoll from '~/lib/utils/simple_poll';
44
import MergeRequest from '~/merge_request';
5+
import BoldText from '~/vue_merge_request_widget/components/bold_text.vue';
56
import eventHub from '../../event_hub';
67
import { MERGE_ACTIVE_STATUS_PHRASES, STATE_MACHINE } from '../../constants';
78
import StatusIcon from '../mr_widget_status_icon.vue';
@@ -12,6 +13,7 @@ const { MERGE_FAILURE } = transitions;
1213
export default {
1314
name: 'MRWidgetMerging',
1415
components: {
16+
BoldText,
1517
StatusIcon,
1618
},
1719
props: {
@@ -83,11 +85,9 @@ export default {
8385
<template>
8486
<div class="mr-widget-body mr-state-locked media">
8587
<status-icon status="loading" />
86-
<div class="media-body">
87-
<h4>
88-
{{ mergeStatus.message }}
89-
<gl-emoji :data-name="mergeStatus.emoji" />
90-
</h4>
88+
<div class="media-body" data-testid="merging-state">
89+
<bold-text :message="mergeStatus.message" />
90+
<gl-emoji :data-name="mergeStatus.emoji" />
9191
</div>
9292
</div>
9393
</template>

Diff for: app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_missing_branch.vue

+8-6
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,14 @@ export default {
6363
<status-icon :show-disabled-button="true" status="failed" />
6464

6565
<div class="media-body space-children">
66-
<span class="gl-font-weight-bold js-branch-text" data-testid="widget-content">
67-
<gl-sprintf :message="warning">
68-
<template #code="{ content }">
69-
<code>{{ content }}</code>
70-
</template>
71-
</gl-sprintf>
66+
<span class="js-branch-text" data-testid="widget-content">
67+
<span class="gl-font-weight-bold">
68+
<gl-sprintf :message="warning">
69+
<template #code="{ content }">
70+
<code>{{ content }}</code>
71+
</template>
72+
</gl-sprintf>
73+
</span>
7274
{{ restore }}
7375
<gl-icon
7476
v-gl-tooltip

0 commit comments

Comments
 (0)