Skip to content

Commit ef69661

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

File tree

43 files changed

+963
-218
lines changed

Some content is hidden

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

43 files changed

+963
-218
lines changed

.eslint_todo/vue-no-unused-properties.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,6 @@ export default {
292292
'app/assets/javascripts/work_items/components/work_item_detail_modal.vue',
293293
'app/assets/javascripts/work_items/components/work_item_development/work_item_create_branch_merge_request_modal.vue',
294294
'app/assets/javascripts/work_items/components/work_item_development/work_item_development_mr_item.vue',
295-
'app/assets/javascripts/work_items/components/work_item_labels.vue',
296295
'app/assets/javascripts/work_items/components/work_item_links/work_item_children_wrapper.vue',
297296
'app/assets/javascripts/work_items/components/work_item_links/work_item_groups_listbox.vue',
298297
'app/assets/javascripts/work_items/components/work_item_links/work_item_link_child.vue',

Gemfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ gem 'sentry-sidekiq', '~> 5.22.0', feature_category: :observability
401401

402402
# PostgreSQL query parsing
403403
#
404-
gem 'pg_query', '~> 6.0.0', feature_category: :database
404+
gem 'pg_query', '~> 6.1.0', feature_category: :database
405405

406406
gem 'gitlab-schema-validation', path: 'gems/gitlab-schema-validation', feature_category: :shared
407407
gem 'gitlab-http', path: 'gems/gitlab-http', feature_category: :shared
@@ -521,7 +521,7 @@ group :development, :test do
521521
# Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
522522
gem 'minitest', '~> 5.11.0', feature_category: :shared
523523

524-
gem 'spring', '~> 4.1.0', feature_category: :shared
524+
gem 'spring', '~> 4.3.0', feature_category: :shared
525525
gem 'spring-commands-rspec', '~> 1.0.4', feature_category: :shared
526526

527527
gem 'gitlab-styles', '~> 13.1.0', feature_category: :tooling, require: false

Gemfile.checksum

+2-2
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@
513513
{"name":"pg","version":"1.5.9","platform":"x64-mingw-ucrt","checksum":"9d9d6a4fcc25251312065b61f94eb56c5266007c0e747606704641d47b92c5eb"},
514514
{"name":"pg","version":"1.5.9","platform":"x64-mingw32","checksum":"02a682056d3db6677e0ed5b233e69383d20641785ba0123cdf56a5eb8286a013"},
515515
{"name":"pg","version":"1.5.9","platform":"x86-mingw32","checksum":"f32a3cde1018a16f0b3392f654f763fd7ef3f6af4fee008312ad7d3575b3c0ab"},
516-
{"name":"pg_query","version":"6.0.0","platform":"ruby","checksum":"fbf09a4e900cee1d61e2bbfda1fefdbc35bc83c5f1c7ae1be1c6ffc5ae0f5c04"},
516+
{"name":"pg_query","version":"6.1.0","platform":"ruby","checksum":"8b005229e209f12c5887c34c60d0eb2a241953b9475b53a9840d24578532481e"},
517517
{"name":"plist","version":"3.7.0","platform":"ruby","checksum":"703ca90a7cb00e8263edd03da2266627f6741d280c910abbbac07c95ffb2f073"},
518518
{"name":"png_quantizator","version":"0.2.1","platform":"ruby","checksum":"6023d4d064125c3a7e02929c95b7320ed6ac0d7341f9e8de0c9ea6576ef3106b"},
519519
{"name":"premailer","version":"1.23.0","platform":"ruby","checksum":"f0d7f6ba299559c96ddf982aa5263f85e5617c86437c8d8ffff120813b2d7efb"},
@@ -701,7 +701,7 @@
701701
{"name":"solargraph","version":"0.47.2","platform":"ruby","checksum":"87ca4b799b9155c2c31c15954c483e952fdacd800f52d6709b901dd447bcac6a"},
702702
{"name":"sorbet-runtime","version":"0.5.11647","platform":"ruby","checksum":"64b65112f2e6a5323310ca9ac0d7d9a6be63aade5a62a6225fe066042ff4fdb6"},
703703
{"name":"spamcheck","version":"1.3.3","platform":"ruby","checksum":"3a29ba9dfcd59543d88054d38c657f79e0a6cf44d763df08ad47680abed50ec7"},
704-
{"name":"spring","version":"4.1.0","platform":"ruby","checksum":"f17f080fb0df558d663c897a6229ed3d5cc54819ab51876ea6eef49a67f0a3cb"},
704+
{"name":"spring","version":"4.3.0","platform":"ruby","checksum":"0aaaf3bcce38e8528275854881d1922660d76cbd19a9a3af4a419d95b7fe7122"},
705705
{"name":"spring-commands-rspec","version":"1.0.4","platform":"ruby","checksum":"6202e54fa4767452e3641461a83347645af478bf45dddcca9737b43af0dd1a2c"},
706706
{"name":"sprite-factory","version":"1.7.1","platform":"ruby","checksum":"5586524a1aec003241f1abc6852b61433e988aba5ee2b55f906387bf49b01ba2"},
707707
{"name":"sprockets","version":"3.7.2","platform":"ruby","checksum":"5ea1d7facd09203c1aa196afd6178208cd25abdbcc2a9978810a2f0754e152a0"},

Gemfile.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -1451,7 +1451,7 @@ GEM
14511451
peek (1.1.0)
14521452
railties (>= 4.0.0)
14531453
pg (1.5.9)
1454-
pg_query (6.0.0)
1454+
pg_query (6.1.0)
14551455
google-protobuf (>= 3.25.3)
14561456
plist (3.7.0)
14571457
png_quantizator (0.2.1)
@@ -1806,7 +1806,7 @@ GEM
18061806
sorbet-runtime (0.5.11647)
18071807
spamcheck (1.3.3)
18081808
grpc (~> 1.63)
1809-
spring (4.1.0)
1809+
spring (4.3.0)
18101810
spring-commands-rspec (1.0.4)
18111811
spring (>= 0.9.1)
18121812
sprite-factory (1.7.1)
@@ -2262,7 +2262,7 @@ DEPENDENCIES
22622262
parslet (~> 1.8)
22632263
peek (~> 1.1)
22642264
pg (~> 1.5.6)
2265-
pg_query (~> 6.0.0)
2265+
pg_query (~> 6.1.0)
22662266
png_quantizator (~> 0.2.1)
22672267
premailer-rails (~> 1.12.0)
22682268
prometheus-client-mmap (~> 1.2.8)
@@ -2328,7 +2328,7 @@ DEPENDENCIES
23282328
snowplow-tracker (~> 0.8.0)
23292329
solargraph (~> 0.47.2)
23302330
spamcheck (~> 1.3.0)
2331-
spring (~> 4.1.0)
2331+
spring (~> 4.3.0)
23322332
spring-commands-rspec (~> 1.0.4)
23332333
sprite-factory (~> 1.7)
23342334
sprockets (~> 3.7.0)

Gemfile.next.checksum

+2-2
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@
516516
{"name":"pg","version":"1.5.9","platform":"x64-mingw-ucrt","checksum":"9d9d6a4fcc25251312065b61f94eb56c5266007c0e747606704641d47b92c5eb"},
517517
{"name":"pg","version":"1.5.9","platform":"x64-mingw32","checksum":"02a682056d3db6677e0ed5b233e69383d20641785ba0123cdf56a5eb8286a013"},
518518
{"name":"pg","version":"1.5.9","platform":"x86-mingw32","checksum":"f32a3cde1018a16f0b3392f654f763fd7ef3f6af4fee008312ad7d3575b3c0ab"},
519-
{"name":"pg_query","version":"6.0.0","platform":"ruby","checksum":"fbf09a4e900cee1d61e2bbfda1fefdbc35bc83c5f1c7ae1be1c6ffc5ae0f5c04"},
519+
{"name":"pg_query","version":"6.1.0","platform":"ruby","checksum":"8b005229e209f12c5887c34c60d0eb2a241953b9475b53a9840d24578532481e"},
520520
{"name":"plist","version":"3.7.0","platform":"ruby","checksum":"703ca90a7cb00e8263edd03da2266627f6741d280c910abbbac07c95ffb2f073"},
521521
{"name":"png_quantizator","version":"0.2.1","platform":"ruby","checksum":"6023d4d064125c3a7e02929c95b7320ed6ac0d7341f9e8de0c9ea6576ef3106b"},
522522
{"name":"pp","version":"0.6.2","platform":"ruby","checksum":"947ec3120c6f92195f8ee8aa25a7b2c5297bb106d83b41baa02983686577b6ff"},
@@ -712,7 +712,7 @@
712712
{"name":"solargraph","version":"0.47.2","platform":"ruby","checksum":"87ca4b799b9155c2c31c15954c483e952fdacd800f52d6709b901dd447bcac6a"},
713713
{"name":"sorbet-runtime","version":"0.5.11647","platform":"ruby","checksum":"64b65112f2e6a5323310ca9ac0d7d9a6be63aade5a62a6225fe066042ff4fdb6"},
714714
{"name":"spamcheck","version":"1.3.3","platform":"ruby","checksum":"3a29ba9dfcd59543d88054d38c657f79e0a6cf44d763df08ad47680abed50ec7"},
715-
{"name":"spring","version":"4.1.0","platform":"ruby","checksum":"f17f080fb0df558d663c897a6229ed3d5cc54819ab51876ea6eef49a67f0a3cb"},
715+
{"name":"spring","version":"4.3.0","platform":"ruby","checksum":"0aaaf3bcce38e8528275854881d1922660d76cbd19a9a3af4a419d95b7fe7122"},
716716
{"name":"spring-commands-rspec","version":"1.0.4","platform":"ruby","checksum":"6202e54fa4767452e3641461a83347645af478bf45dddcca9737b43af0dd1a2c"},
717717
{"name":"sprite-factory","version":"1.7.1","platform":"ruby","checksum":"5586524a1aec003241f1abc6852b61433e988aba5ee2b55f906387bf49b01ba2"},
718718
{"name":"sprockets","version":"3.7.2","platform":"ruby","checksum":"5ea1d7facd09203c1aa196afd6178208cd25abdbcc2a9978810a2f0754e152a0"},

Gemfile.next.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -1468,7 +1468,7 @@ GEM
14681468
peek (1.1.0)
14691469
railties (>= 4.0.0)
14701470
pg (1.5.9)
1471-
pg_query (6.0.0)
1471+
pg_query (6.1.0)
14721472
google-protobuf (>= 3.25.3)
14731473
plist (3.7.0)
14741474
png_quantizator (0.2.1)
@@ -1839,7 +1839,7 @@ GEM
18391839
sorbet-runtime (0.5.11647)
18401840
spamcheck (1.3.3)
18411841
grpc (~> 1.63)
1842-
spring (4.1.0)
1842+
spring (4.3.0)
18431843
spring-commands-rspec (1.0.4)
18441844
spring (>= 0.9.1)
18451845
sprite-factory (1.7.1)
@@ -2296,7 +2296,7 @@ DEPENDENCIES
22962296
parslet (~> 1.8)
22972297
peek (~> 1.1)
22982298
pg (~> 1.5.6)
2299-
pg_query (~> 6.0.0)
2299+
pg_query (~> 6.1.0)
23002300
png_quantizator (~> 0.2.1)
23012301
premailer-rails (~> 1.12.0)
23022302
prometheus-client-mmap (~> 1.2.8)
@@ -2362,7 +2362,7 @@ DEPENDENCIES
23622362
snowplow-tracker (~> 0.8.0)
23632363
solargraph (~> 0.47.2)
23642364
spamcheck (~> 1.3.0)
2365-
spring (~> 4.1.0)
2365+
spring (~> 4.3.0)
23662366
spring-commands-rspec (~> 1.0.4)
23672367
sprite-factory (~> 1.7)
23682368
sprockets (~> 3.7.0)

app/assets/javascripts/ci/pipeline_details/graph/components/linked_pipeline.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ export default {
300300
/>
301301
<div v-else class="gl-pr-3"><gl-loading-icon size="sm" inline /></div>
302302
<div class="gl-flex gl-min-w-0 gl-flex-1 gl-flex-col">
303-
<span class="gl-truncate" data-testid="downstream-title-content">
303+
<span class="gl-whitespace-normal" data-testid="downstream-title-content">
304304
{{ downstreamTitle }}
305305
</span>
306306
<div class="gl-truncate">

app/assets/javascripts/content_editor/services/gl_api_markdown_deserializer.js

+11-4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ const markdownToAst = (markdown) => {
77
return unified().use(remarkParse).parse(markdown);
88
};
99

10+
export const transformQuickActions = (markdown) => {
11+
// ensure 3 newlines after all quick actions so that
12+
// any reference style links after it get correctly parsed
13+
return markdown.replace(/^\/(.+?)\n/gm, '/$1\n\n\n');
14+
};
15+
1016
/**
1117
* Extracts link reference definitions from a markdown string.
1218
* This is useful for preserving reference definitions when
@@ -44,21 +50,22 @@ export default ({ render }) => {
4450
* @returns {{ document: ProseMirror.Node }}
4551
*/
4652
deserialize: async ({ schema, markdown }) => {
47-
const html = markdown ? (await render(markdown)).body : '<p></p>';
53+
const transformedMarkdown = transformQuickActions(markdown);
54+
const html = markdown ? (await render(transformedMarkdown)).body : '<p></p>';
4855
const parser = new DOMParser();
4956
const { body } = parser.parseFromString(`<body>${html}</body>`, 'text/html');
5057

5158
replaceCommentsWith(body, 'comment');
5259

5360
// append original source as a comment that nodes can access
54-
body.append(document.createComment(markdown));
61+
body.append(document.createComment(transformedMarkdown));
5562

5663
const doc = ProseMirror.DOMParser.fromSchema(schema).parse(body);
5764

5865
if (preserveMarkdown())
5966
doc.attrs = {
60-
source: markdown,
61-
referenceDefinitions: extractReferenceDefinitions(markdown),
67+
source: transformedMarkdown,
68+
referenceDefinitions: extractReferenceDefinitions(transformedMarkdown),
6269
};
6370

6471
return { document: doc };

app/assets/javascripts/import_entities/import_projects/components/provider_repo_table_row.vue

+58-15
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
<script>
2-
import { GlIcon, GlBadge, GlFormInput, GlButton, GlLink, GlTooltip, GlSprintf } from '@gitlab/ui';
2+
import {
3+
GlIcon,
4+
GlBadge,
5+
GlFormInput,
6+
GlButton,
7+
GlLink,
8+
GlTooltip,
9+
GlSprintf,
10+
GlModal,
11+
} from '@gitlab/ui';
312
// eslint-disable-next-line no-restricted-imports
413
import { mapState, mapGetters, mapActions } from 'vuex';
5-
import { __ } from '~/locale';
6-
import { helpPagePath } from '~/helpers/help_page_helper';
14+
import { __, s__ } from '~/locale';
15+
import HelpPageLink from '~/vue_shared/components/help_page_link/help_page_link.vue';
716
import HelpPopover from '~/vue_shared/components/help_popover.vue';
817
import ImportTargetDropdown from '../../components/import_target_dropdown.vue';
918
import ImportStatus from '../../components/import_status.vue';
@@ -13,6 +22,7 @@ import { isProjectImportable, isImporting, isIncompatible, getImportStatus } fro
1322
export default {
1423
name: 'ProviderRepoTableRow',
1524
components: {
25+
HelpPageLink,
1626
HelpPopover,
1727
ImportStatus,
1828
ImportTargetDropdown,
@@ -23,6 +33,7 @@ export default {
2333
GlLink,
2434
GlTooltip,
2535
GlSprintf,
36+
GlModal,
2637
},
2738
inject: {
2839
userNamespace: {
@@ -48,6 +59,7 @@ export default {
4859
data() {
4960
return {
5061
isSelectedForReimport: false,
62+
showMembershipsModal: false,
5163
};
5264
},
5365
@@ -61,7 +73,7 @@ export default {
6173
6274
showMembershipsWarning() {
6375
const userNamespaceSelected = this.importTarget.targetNamespace === this.userNamespace;
64-
return this.isImportNotStarted && userNamespaceSelected;
76+
return (this.isImportNotStarted || this.isSelectedForReimport) && userNamespaceSelected;
6577
},
6678
6779
isFinished() {
@@ -143,15 +155,20 @@ export default {
143155
}
144156
},
145157
158+
onImportClick() {
159+
if (this.showMembershipsWarning) {
160+
this.showMembershipsModal = true;
161+
} else {
162+
this.handleImportRepo();
163+
}
164+
},
165+
146166
onSelect(value) {
147167
this.updateImportTarget({ targetNamespace: value });
148168
},
149169
},
150-
151-
helpPath: helpPagePath('/user/project/import/github'),
152-
membershipsHelpPath: helpPagePath('user/project/import/_index', {
153-
anchor: 'user-contribution-and-membership-mapping',
154-
}),
170+
actionPrimary: { text: s__('ImportProjects|Continue import') },
171+
actionCancel: { text: __('Cancel') },
155172
};
156173
</script>
157174
@@ -223,7 +240,8 @@ export default {
223240
'ImportProjects|Imported files will be kept. You can import this repository again later.',
224241
)
225242
}}
226-
<gl-link :href="$options.helpPath" target="_blank">{{ __('Learn more.') }}</gl-link>
243+
<help-page-link href="/user/project/import/github">{{ __('Learn more') }}</help-page-link
244+
>.
227245
</div>
228246
</gl-tooltip>
229247
<gl-button
@@ -239,10 +257,33 @@ export default {
239257
v-if="isImportNotStarted || isFinished"
240258
type="button"
241259
data-testid="import-button"
242-
@click="handleImportRepo()"
260+
@click="onImportClick"
243261
>
244262
{{ importButtonText }}
245263
</gl-button>
264+
<gl-modal
265+
v-if="showMembershipsWarning"
266+
v-model="showMembershipsModal"
267+
:title="
268+
s__('ImportProjects|Are you sure you want to import the project to a personal namespace?')
269+
"
270+
:action-primary="$options.actionPrimary"
271+
:action-cancel="$options.actionCancel"
272+
@primary="handleImportRepo"
273+
>
274+
<p>
275+
{{
276+
s__(
277+
'ImportProjects|Importing a project into a personal namespace results in all contributions being mapped to the same bot user and they cannot be reassigned. To map contributions to actual users, import the project to a group instead.',
278+
)
279+
}}
280+
<help-page-link
281+
href="/user/project/import/_index"
282+
anchor="user-contribution-and-membership-mapping"
283+
>{{ __('Learn more') }}</help-page-link
284+
>.
285+
</p>
286+
</gl-modal>
246287
<span class="gl-ml-3 gl-inline-flex gl-gap-3">
247288
<help-popover
248289
v-show="showMembershipsWarning"
@@ -252,12 +293,14 @@ export default {
252293
>
253294
{{
254295
s__(
255-
'ImportProjects|Importing a project into a personal namespace results in all contributions being mapped to the same bot user. To map contributions to real users, import projects into a group instead.',
296+
'ImportProjects|Importing a project into a personal namespace results in all contributions being mapped to the same bot user and they cannot be reassigned. To map contributions to actual users, import the project to a group instead.',
256297
)
257298
}}
258-
<gl-link :href="$options.membershipsHelpPath" target="_blank">{{
259-
__('Learn more.')
260-
}}</gl-link>
299+
<help-page-link
300+
href="/user/project/import/_index"
301+
anchor="user-contribution-and-membership-mapping"
302+
>{{ __('Learn more') }}</help-page-link
303+
>.
261304
</help-popover>
262305
263306
<help-popover v-if="isFinished" icon="information-o">

app/assets/javascripts/notes/components/note_body.vue

-3
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ export default {
2727
Suggestions,
2828
DuoCodeReviewFeedback: () =>
2929
import('ee_component/notes/components/duo_code_review_feedback.vue'),
30-
AmazonQFixButton: () =>
31-
import('ee_component/merge_requests/components/amazon_q/amazon_q_fix_button.vue'),
3230
},
3331
directives: {
3432
SafeHtml,
@@ -246,7 +244,6 @@ export default {
246244
@handleFormUpdate="handleFormUpdate"
247245
@cancelForm="formCancelHandler"
248246
/>
249-
<amazon-q-fix-button :note="note" class="gl-mt-3" />
250247
<!-- eslint-disable vue/no-mutating-props -->
251248
<textarea
252249
v-if="canEdit"

0 commit comments

Comments
 (0)