Skip to content

Commit 8abe394

Browse files
author
GitLab Bot
committed
Add latest changes from gitlab-org/gitlab@master
1 parent 6781910 commit 8abe394

File tree

82 files changed

+911
-421
lines changed

Some content is hidden

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

82 files changed

+911
-421
lines changed

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

-1
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,6 @@ export default {
377377
'ee/app/assets/javascripts/iterations/components/iteration_report.vue',
378378
'ee/app/assets/javascripts/linked_resources/components/resource_links_block.vue',
379379
'ee/app/assets/javascripts/logs/list/related_issues/related_issues_provider.vue',
380-
'ee/app/assets/javascripts/members/promotion_requests/components/app.vue',
381380
'ee/app/assets/javascripts/merge_requests/components/reviewers/approval_summary.vue',
382381
'ee/app/assets/javascripts/metrics/details/metrics_details.vue',
383382
'ee/app/assets/javascripts/metrics/details/metrics_line_chart.vue',

.gitlab/ci/docs.gitlab-ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ docs code_quality:
7676
when: always
7777

7878
docs hugo_build:
79-
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/technical-writing/docs-gitlab-com/docs-gitlab-com-builder:hugo-0.142.0
79+
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/technical-writing/docs-gitlab-com/docs-gitlab-com-builder:hugo-0.145.0
8080
extends:
8181
- .default-retry
8282
- .docs:rules:docs-lint

.rubocop_todo/gitlab/bounded_contexts.yml

-1
Original file line numberDiff line numberDiff line change
@@ -3530,7 +3530,6 @@ Gitlab/BoundedContexts:
35303530
- 'ee/lib/bulk_imports/projects/pipelines/push_rule_pipeline.rb'
35313531
- 'ee/lib/bulk_imports/projects/pipelines/vulnerabilities_pipeline.rb'
35323532
- 'ee/lib/delay.rb'
3533-
- 'ee/lib/duo_pro/bulk_user_assignment.rb'
35343533
- 'ee/lib/ee/bulk_imports/groups/stage.rb'
35353534
- 'ee/lib/ee/bulk_imports/projects/pipelines/issues_pipeline.rb'
35363535
- 'ee/lib/ee/bulk_imports/projects/stage.rb'

.rubocop_todo/layout/line_break_after_final_mixin.yml

-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ Layout/LineBreakAfterFinalMixin:
7979
- 'ee/lib/api/dependency_proxy/packages/maven.rb'
8080
- 'ee/lib/api/resource_iteration_events.rb'
8181
- 'ee/lib/api/resource_weight_events.rb'
82-
- 'ee/lib/duo_pro/bulk_user_assignment.rb'
8382
- 'ee/lib/ee/api/entities/project_push_rule.rb'
8483
- 'ee/lib/ee/gitlab/background_migration/create_compliance_standards_adherence.rb'
8584
- 'ee/lib/gitlab/auth/group_saml/identity_linker.rb'

GITALY_SERVER_VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
d5b6a529fbff95ae2f8479a95ae375abaa497ae1
1+
5603e4787366e8a2b02491ab921364627efc3ed3

app/assets/javascripts/clusters_list/components/agent_token.vue

-16
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
<script>
22
import { GlAlert, GlFormInputGroup, GlLink, GlSprintf, GlIcon } from '@gitlab/ui';
3-
import { helpPagePath } from '~/helpers/help_page_helper';
43
import ModalCopyButton from '~/vue_shared/components/modal_copy_button.vue';
54
import CodeBlock from '~/vue_shared/components/code_block.vue';
65
import { generateAgentRegistrationCommand } from '../clusters_util';
76
import { I18N_AGENT_TOKEN, HELM_VERSION_POLICY_URL } from '../constants';
87
98
export default {
109
i18n: I18N_AGENT_TOKEN,
11-
advancedInstallPath: helpPagePath('user/clusters/agent/install/_index', {
12-
anchor: 'advanced-installation-method',
13-
}),
1410
HELM_VERSION_POLICY_URL,
1511
components: {
1612
GlAlert,
@@ -95,17 +91,5 @@ export default {
9591
:modal-id="modalId"
9692
/>
9793
</p>
98-
99-
<p>
100-
<strong>{{ $options.i18n.advancedInstallTitle }}</strong>
101-
</p>
102-
103-
<p>
104-
<gl-sprintf :message="$options.i18n.advancedInstallBody">
105-
<template #link="{ content }">
106-
<gl-link :href="$options.advancedInstallPath" target="_blank"> {{ content }}</gl-link>
107-
</template>
108-
</gl-sprintf>
109-
</p>
11094
</div>
11195
</template>

app/assets/javascripts/clusters_list/constants.js

+1-6
Original file line numberDiff line numberDiff line change
@@ -98,18 +98,13 @@ export const I18N_AGENT_TOKEN = {
9898
),
9999
tokenSubtitle: s__('ClusterAgents|The agent uses the token to connect with GitLab.'),
100100

101-
basicInstallTitle: s__('ClusterAgents|Install using Helm (recommended)'),
101+
basicInstallTitle: s__('ClusterAgents|Install using Helm'),
102102
basicInstallBody: s__(
103103
'ClusterAgents|From a terminal, connect to your cluster and run this command. The token is included in the command.',
104104
),
105105
helmVersionText: s__(
106106
'ClusterAgents|Use a Helm version compatible with your Kubernetes version (see %{linkStart}Helm version support policy%{linkEnd}).',
107107
),
108-
109-
advancedInstallTitle: s__('ClusterAgents|Advanced installation methods'),
110-
advancedInstallBody: s__(
111-
'ClusterAgents|%{linkStart}View the documentation%{linkEnd} for advanced installation. Ensure you have your access token available.',
112-
),
113108
};
114109

115110
export const HELM_VERSION_POLICY_URL = 'https://helm.sh/docs/topics/version_skew/';

app/assets/javascripts/import_entities/import_groups/components/import_table.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -812,7 +812,7 @@ export default {
812812
class="import-table-bar gl-sticky gl-z-3 gl-flex-col gl-bg-subtle gl-px-5 md:gl-flex md:gl-flex-row md:gl-items-center md:gl-justify-between"
813813
>
814814
<div class="gl-flex gl-w-full gl-items-center gl-gap-4 gl-pb-4">
815-
<span data-test-id="selection-count">
815+
<span data-testid="selection-count">
816816
<gl-sprintf :message="__('%{count} selected')">
817817
<template #count>
818818
{{ selectedGroupsIds.length }}
@@ -885,7 +885,7 @@ export default {
885885
/>
886886
</template>
887887
<template #head(importTarget)="data">
888-
<span data-test-id="new-path-col">
888+
<span data-testid="new-path-col">
889889
<span class="gl-mr-2">{{ data.label }}</span
890890
><gl-icon
891891
v-gl-tooltip="s__('BulkImport|Path of the new group.')"

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

+1
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ export default {
9898
[constants.ISSUE_NOTEABLE_TYPE]: this.$options.i18n.issue,
9999
[constants.EPIC_NOTEABLE_TYPE]: this.$options.i18n.epic,
100100
[constants.MERGE_REQUEST_NOTEABLE_TYPE]: this.$options.i18n.mergeRequest,
101+
[constants.INCIDENT_NOTEABLE_TYPE]: this.$options.i18n.incident,
101102
};
102103
103104
const noteableTypeKey =

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

+6
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,12 @@ export default {
161161
return this.sortDirection === constants.DESC;
162162
},
163163
noteableType() {
164+
if (this.noteableData.type?.toUpperCase() === constants.INCIDENT_NOTEABLE_TYPE) {
165+
return (
166+
this.noteableData.type.charAt(0).toUpperCase() +
167+
this.noteableData.type.slice(1).toLowerCase()
168+
);
169+
}
164170
return this.noteableData.noteableType;
165171
},
166172
previewNoteId() {

app/assets/javascripts/notes/i18n.js

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export const COMMENT_FORM = {
1010
wiki: __('Wiki'),
1111
internalComment: __('Add internal note'),
1212
issue: __('issue'),
13+
incident: __('incident'),
1314
startThread: __('Start thread'),
1415
startInternalThread: __('Start internal thread'),
1516
mergeRequest: __('merge request'),

app/assets/javascripts/packages_and_registries/package_registry/components/details/npm_installation.vue

+13-5
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
NPM_PACKAGE_MANAGER,
1313
YARN_PACKAGE_MANAGER,
1414
PROJECT_PACKAGE_ENDPOINT_TYPE,
15+
GROUP_PACKAGE_ENDPOINT_TYPE,
1516
INSTANCE_PACKAGE_ENDPOINT_TYPE,
1617
NPM_HELP_PATH,
1718
} from '~/packages_and_registries/package_registry/constants';
@@ -26,7 +27,7 @@ export default {
2627
GlSprintf,
2728
GlFormRadioGroup,
2829
},
29-
inject: ['npmInstanceUrl'],
30+
inject: ['npmInstanceUrl', 'npmGroupUrl'],
3031
props: {
3132
packageEntity: {
3233
type: Object,
@@ -63,12 +64,18 @@ export default {
6364
6465
return `${instruction} ${this.packageEntity.name}`;
6566
},
67+
npmPath(endpointType) {
68+
const endpointMap = {
69+
[INSTANCE_PACKAGE_ENDPOINT_TYPE]: this.npmInstanceUrl,
70+
[GROUP_PACKAGE_ENDPOINT_TYPE]: this.npmGroupUrl,
71+
};
72+
73+
return endpointMap[endpointType] || this.packageEntity.npmUrl;
74+
},
6675
npmSetupCommand(type, endpointType) {
6776
const scope = this.packageEntity.name.substring(0, this.packageEntity.name.indexOf('/'));
68-
const npmPathForEndpoint =
69-
endpointType === INSTANCE_PACKAGE_ENDPOINT_TYPE
70-
? this.npmInstanceUrl
71-
: this.packageEntity.npmUrl;
77+
78+
const npmPathForEndpoint = this.npmPath(endpointType);
7279
7380
if (type === NPM_PACKAGE_MANAGER) {
7481
return `echo ${scope}:registry=${npmPathForEndpoint}/ >> .npmrc`;
@@ -99,6 +106,7 @@ export default {
99106
],
100107
packageEndpointTypeOptions: [
101108
{ value: INSTANCE_PACKAGE_ENDPOINT_TYPE, text: s__('PackageRegistry|Instance-level') },
109+
{ value: GROUP_PACKAGE_ENDPOINT_TYPE, text: s__('PackageRegistry|Group-level') },
102110
{ value: PROJECT_PACKAGE_ENDPOINT_TYPE, text: s__('PackageRegistry|Project-level') },
103111
],
104112
};

app/assets/javascripts/packages_and_registries/package_registry/constants.js

+1
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ export const NPM_PACKAGE_MANAGER = 'npm';
168168
export const YARN_PACKAGE_MANAGER = 'yarn';
169169

170170
export const PROJECT_PACKAGE_ENDPOINT_TYPE = 'project';
171+
export const GROUP_PACKAGE_ENDPOINT_TYPE = 'group';
171172
export const INSTANCE_PACKAGE_ENDPOINT_TYPE = 'instance';
172173

173174
export const GRAPHQL_PAGE_SIZE = 20;

app/assets/javascripts/packages_and_registries/package_registry/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export default () => {
1717
pageType,
1818
emptyListIllustration,
1919
npmInstanceUrl,
20+
npmGroupUrl,
2021
projectListUrl,
2122
groupListUrl,
2223
settingsPath,
@@ -46,6 +47,7 @@ export default () => {
4647
emptyListIllustration,
4748
isGroupPage,
4849
npmInstanceUrl,
50+
npmGroupUrl,
4951
projectListUrl,
5052
groupListUrl,
5153
breadCrumbState,

app/assets/javascripts/rapid_diffs/options_menu/adapter.js

+22-21
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,29 @@ function getMenuItems(container) {
77

88
export const OptionsMenuAdapter = {
99
clicks: {
10-
toggleOptionsMenu(event) {
11-
const button = event.target.closest('.js-options-button');
12-
const menuContainer = button.parentElement;
10+
toggleOptionsMenu(event, button) {
11+
const menuContainer = this.diffElement.querySelector('[data-options-menu]');
1312
const items = getMenuItems(menuContainer);
14-
15-
if (!this.sink.optionsMenu) {
16-
this.sink.optionsMenu = new Vue({
17-
el: Vue.version.startsWith('2') ? button : menuContainer,
18-
name: 'GlDisclosureDropdown',
19-
render: (createElement = Vue.h) =>
20-
createElement(GlDisclosureDropdown, {
21-
props: {
22-
icon: 'ellipsis_v',
23-
startOpened: true,
24-
noCaret: true,
25-
category: 'tertiary',
26-
size: 'small',
27-
items,
28-
},
29-
}),
30-
});
31-
}
13+
// eslint-disable-next-line no-new
14+
new Vue({
15+
el: Vue.version.startsWith('2') ? button : menuContainer,
16+
name: 'GlDisclosureDropdown',
17+
render(h) {
18+
return h(GlDisclosureDropdown, {
19+
props: {
20+
icon: 'ellipsis_v',
21+
startOpened: true,
22+
noCaret: true,
23+
category: 'tertiary',
24+
size: 'small',
25+
items,
26+
},
27+
attrs: {
28+
'data-options-toggle': true,
29+
},
30+
});
31+
},
32+
});
3233
},
3334
},
3435
};

app/assets/javascripts/search/results/components/app.vue

+25-12
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { mapState } from 'vuex';
44
import { __, s__ } from '~/locale';
55
import getBlobSearchQuery from '~/search/graphql/blob_search_zoekt.query.graphql';
66
import { parseBoolean } from '~/lib/utils/common_utils';
7+
import { logError } from '~/lib/logger';
78
import { DEFAULT_FETCH_CHUNKS } from '../constants';
89
import { RECEIVE_NAVIGATION_COUNT } from '../../store/mutation_types';
910
import EmptyResult from './result_empty.vue';
@@ -30,7 +31,6 @@ export default {
3031
return {
3132
hasError: false,
3233
blobSearch: {},
33-
hasResults: true,
3434
};
3535
},
3636
apollo: {
@@ -40,30 +40,40 @@ export default {
4040
},
4141
errorPolicy: 'none',
4242
variables() {
43-
return {
44-
search: this.query.search,
45-
groupId: this.query.group_id && `gid://gitlab/Group/${this.query.group_id}`,
46-
projectId: this.query.project_id && `gid://gitlab/Project/${this.query.project_id}`,
43+
const variables = {
44+
search: this.query.search || '',
4745
page: this.currentPage,
4846
chunkCount: DEFAULT_FETCH_CHUNKS,
49-
regex: parseBoolean(this.query.regex),
50-
includeArchived: parseBoolean(this.query.include_archived),
51-
includeForked: parseBoolean(this.query.include_forked),
47+
regex: parseBoolean(this.query?.regex),
48+
includeArchived: parseBoolean(this.query?.include_archived),
49+
includeForked: parseBoolean(this.query?.include_forked),
5250
};
51+
52+
if (this.query?.group_id) {
53+
variables.groupId = `gid://gitlab/Group/${this.query.group_id}`;
54+
}
55+
56+
if (this.query?.project_id) {
57+
variables.projectId = `gid://gitlab/Project/${this.query.project_id}`;
58+
}
59+
60+
return variables;
61+
},
62+
skip() {
63+
return !this.query.search;
5364
},
5465
result({ data }) {
5566
this.hasError = false;
5667
this.blobSearch = data?.blobSearch;
57-
this.hasResults = data?.blobSearch?.files?.length > 0;
5868
this.$store.commit(RECEIVE_NAVIGATION_COUNT, {
5969
key: 'blobs',
6070
count: data?.blobSearch?.matchCount.toString(),
6171
});
6272
},
6373
debounce: 500,
64-
error() {
74+
error(error) {
75+
logError(error);
6576
this.hasError = true;
66-
this.hasResults = false;
6777
},
6878
},
6979
},
@@ -75,6 +85,9 @@ export default {
7585
isLoading() {
7686
return this.$apollo.queries.blobSearch.loading;
7787
},
88+
hasResults() {
89+
return this.blobSearch?.files?.length > 0;
90+
},
7891
},
7992
};
8093
</script>
@@ -86,7 +99,7 @@ export default {
8699
<status-bar v-if="!isLoading" :blob-search="blobSearch" />
87100
<empty-result v-if="!hasResults && !isLoading" />
88101
<zoekt-blob-results
89-
v-if="hasResults"
102+
v-if="hasResults || isLoading"
90103
:blob-search="blobSearch"
91104
:has-results="hasResults"
92105
:is-loading="isLoading"

app/assets/javascripts/vue_shared/components/markdown/header.vue

-1
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,6 @@ export default {
632632
v-if="!restrictedToolBarItems.includes('collapsible-section')"
633633
v-show="!previewMarkdown"
634634
:tag="mdCollapsibleSection"
635-
:prepend="true"
636635
tag-select="Click to expand"
637636
:button-title="__('Add a collapsible section')"
638637
icon="details-block"

app/assets/stylesheets/components/rapid_diffs/diff_file_component.scss

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
z-index: 1;
2626
}
2727

28+
.rd-diff-file-header:has([data-options-toggle] button[aria-expanded='true']) {
29+
z-index: 10;
30+
}
31+
2832
.rd-diff-file[data-collapsed] .rd-diff-file-header {
2933
border-radius: var(--rd-diff-file-border-radius);
3034
}

app/assets/stylesheets/page_bundles/settings.scss

-9
Original file line numberDiff line numberDiff line change
@@ -166,12 +166,3 @@
166166
font-size: $default-icon-size;
167167
line-height: 42px;
168168
}
169-
170-
.settings-message {
171-
padding: 5px;
172-
line-height: 1.3;
173-
color: var(--gray-900, $gray-900);
174-
background-color: var(--orange-50, $orange-50);
175-
border: 1px solid var(--orange-200, $orange-200);
176-
border-radius: $gl-border-radius-base;
177-
}

0 commit comments

Comments
 (0)