Skip to content

Commit 7868c6b

Browse files
author
GitLab Bot
committed
Add latest changes from gitlab-org/gitlab@master
1 parent 97856db commit 7868c6b

File tree

78 files changed

+1453
-249
lines changed

Some content is hidden

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

78 files changed

+1453
-249
lines changed

.rubocop_todo/style/inline_disable_annotation.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1493,7 +1493,6 @@ Style/InlineDisableAnnotation:
14931493
- 'ee/app/services/vulnerabilities/bulk_dismiss_service.rb'
14941494
- 'ee/app/services/vulnerabilities/create_service_base.rb'
14951495
- 'ee/app/services/vulnerabilities/manually_create_service.rb'
1496-
- 'ee/app/services/work_items/widgets/iteration_service/base_service.rb'
14971496
- 'ee/app/validators/user_existence_validator.rb'
14981497
- 'ee/app/validators/user_id_existence_validator.rb'
14991498
- 'ee/app/workers/active_user_count_threshold_worker.rb'

GITLAB_PAGES_VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
32916bff1cffbe5287550db0b960f6b4e47addfe
1+
2927579d8258f68547428f33ab6c898045e74a82

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ gem 'spamcheck', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
617617
gem 'gitaly', '~> 17.2.0', feature_category: :gitaly
618618

619619
# KAS GRPC protocol definitions
620-
gem 'kas-grpc', '~> 0.5.0', feature_category: :deployment_management
620+
gem 'kas-grpc', '~> 0.6.0', feature_category: :deployment_management
621621

622622
gem 'grpc', '~> 1.63', feature_category: :shared
623623

Gemfile.checksum

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -279,15 +279,15 @@
279279
{"name":"graphql","version":"2.3.5","platform":"ruby","checksum":"9c367835f86541660d24c3d81632267ecee553d304577aaee070f8ac05860af1"},
280280
{"name":"graphql-client","version":"0.23.0","platform":"ruby","checksum":"f238b8e451676baad06bd15f95396e018192243dcf12c4e6d13fb41d9a2babc1"},
281281
{"name":"graphql-docs","version":"5.0.0","platform":"ruby","checksum":"76baca6e5a803a4b6a9fbbbfdbf16742b7c4c546c8592b6e1a7aa4e79e562d04"},
282-
{"name":"grpc","version":"1.63.0","platform":"aarch64-linux","checksum":"dc75c5fd570b819470781d9512105dddfdd11d984f38b8e60bb946f92d1f79ee"},
283-
{"name":"grpc","version":"1.63.0","platform":"arm64-darwin","checksum":"91b93a354508a9d1772f095554f2e4c04358c2b32d7a670e3705b7fc4695c996"},
284-
{"name":"grpc","version":"1.63.0","platform":"ruby","checksum":"5f4383c4ee2886e92c31b90422261b7527f26e3baa585d877e9804e715983686"},
285-
{"name":"grpc","version":"1.63.0","platform":"x64-mingw-ucrt","checksum":"bbca63f19b45cca5a485f5c5eb363a8684d23a6d0c3421bde5e72e6227291488"},
286-
{"name":"grpc","version":"1.63.0","platform":"x64-mingw32","checksum":"fb6251f497c8327eda92c4af293ec07fcaec4ffaa2514d3942a7c31406bfaf5b"},
287-
{"name":"grpc","version":"1.63.0","platform":"x86-linux","checksum":"152140fa2c28e384d3c1ded454a66d5e22fb2ff1d2920c2ef2530b2d707de6fd"},
288-
{"name":"grpc","version":"1.63.0","platform":"x86-mingw32","checksum":"eed13225b08e705421fef9d986de6c2310ec692df1d80f7a4d407de7c1f98525"},
289-
{"name":"grpc","version":"1.63.0","platform":"x86_64-darwin","checksum":"a814414ff178e89ee3ad0cc2a826ce1ca96c68063effb81affe3e5ceff7b44cc"},
290-
{"name":"grpc","version":"1.63.0","platform":"x86_64-linux","checksum":"41a90a597f44959c8dbb94619db2b0c0939a768569a5dfad41fffa227eb1287d"},
282+
{"name":"grpc","version":"1.65.2","platform":"aarch64-linux","checksum":"a541d5aeb721ac5e732284ca8b6b955b2e2e5135c3c23134b926a569eca68933"},
283+
{"name":"grpc","version":"1.65.2","platform":"arm64-darwin","checksum":"1a7e762ae1b59c363f26dfbbd857a87bf8f806744438a1a85d828e92d57ba436"},
284+
{"name":"grpc","version":"1.65.2","platform":"ruby","checksum":"9d696e4e742eb1a7f3b3b7a6b3ee1796e4a6a2b009513b5f048df50e823622cc"},
285+
{"name":"grpc","version":"1.65.2","platform":"x64-mingw-ucrt","checksum":"b3341bfa6050b1e1790fcfa5560bc9b0d82ffe36d7bacfccb5c621401424198d"},
286+
{"name":"grpc","version":"1.65.2","platform":"x64-mingw32","checksum":"ea5162774967da44606552d3ca0c8efb3769c6a7b094e0764c38edca5ecab3e5"},
287+
{"name":"grpc","version":"1.65.2","platform":"x86-linux","checksum":"d7566459acb8964aff730f3c662e31122fca148befd76598fa11ea80efe8a892"},
288+
{"name":"grpc","version":"1.65.2","platform":"x86-mingw32","checksum":"6c102550453269f1de35cedc001aee1315bfec7af862008a8232c3262dcf130d"},
289+
{"name":"grpc","version":"1.65.2","platform":"x86_64-darwin","checksum":"4693e166dc84270f16e6b71d8f758cbbd367070f1d980d590d97e8b4b9b8d6ff"},
290+
{"name":"grpc","version":"1.65.2","platform":"x86_64-linux","checksum":"229bd96065637e867a2c13a1c5edb34ebdd14d2250428f03df718fd7a541edb5"},
291291
{"name":"grpc-google-iam-v1","version":"1.5.0","platform":"ruby","checksum":"cea356d150dac69751f6a4c71f1571c8022c69d9f4ce9c18139200932c19374e"},
292292
{"name":"gssapi","version":"1.3.1","platform":"ruby","checksum":"c51cf30842ee39bd93ce7fc33e20405ff8a04cda9dec6092071b61258284aee1"},
293293
{"name":"guard","version":"2.16.2","platform":"ruby","checksum":"71ba7abaddecc8be91ab77bbaf78f767246603652ebbc7b976fda497ebdc8fbb"},
@@ -341,7 +341,7 @@
341341
{"name":"kaminari-actionview","version":"1.2.2","platform":"ruby","checksum":"1330f6fc8b59a4a4ef6a549ff8a224797289ebf7a3a503e8c1652535287cc909"},
342342
{"name":"kaminari-activerecord","version":"1.2.2","platform":"ruby","checksum":"0dd3a67bab356a356f36b3b7236bcb81cef313095365befe8e98057dd2472430"},
343343
{"name":"kaminari-core","version":"1.2.2","platform":"ruby","checksum":"3bd26fec7370645af40ca73b9426a448d09b8a8ba7afa9ba3c3e0d39cdbb83ff"},
344-
{"name":"kas-grpc","version":"0.5.0","platform":"ruby","checksum":"6c796f5afb1f1f37ae7a9d958d9f4b0ba46249e0dd4ca6ee268d4210b85dce35"},
344+
{"name":"kas-grpc","version":"0.6.0","platform":"ruby","checksum":"43f7364cf45d50d5696ca4e1689bb648f22e5cec70fcf8ffe58330c04455af79"},
345345
{"name":"knapsack","version":"4.0.0","platform":"ruby","checksum":"a9422688751989d09a40b4bf7f959a71a3bfe7bc49d3cd610c2fcfb6e45482b8"},
346346
{"name":"kramdown","version":"2.3.2","platform":"ruby","checksum":"cb4530c2e9d16481591df2c9336723683c354e5416a5dd3e447fa48215a6a71c"},
347347
{"name":"kramdown-parser-gfm","version":"1.1.0","platform":"ruby","checksum":"fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729"},

Gemfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -898,8 +898,8 @@ GEM
898898
graphql (~> 2.0)
899899
html-pipeline (~> 2.14, >= 2.14.3)
900900
sass-embedded (~> 1.58)
901-
grpc (1.63.0)
902-
google-protobuf (~> 3.25)
901+
grpc (1.65.2)
902+
google-protobuf (>= 3.25, < 5.0)
903903
googleapis-common-protos-types (~> 1.0)
904904
grpc-google-iam-v1 (1.5.0)
905905
google-protobuf (~> 3.18)
@@ -1020,7 +1020,7 @@ GEM
10201020
activerecord
10211021
kaminari-core (= 1.2.2)
10221022
kaminari-core (1.2.2)
1023-
kas-grpc (0.5.0)
1023+
kas-grpc (0.6.0)
10241024
grpc (~> 1.0)
10251025
knapsack (4.0.0)
10261026
rake
@@ -2107,7 +2107,7 @@ DEPENDENCIES
21072107
jsonb_accessor (~> 1.3.10)
21082108
jwt (~> 2.5)
21092109
kaminari (~> 1.2.2)
2110-
kas-grpc (~> 0.5.0)
2110+
kas-grpc (~> 0.6.0)
21112111
knapsack (~> 4.0.0)
21122112
kramdown (~> 2.3.1)
21132113
kubeclient (~> 4.11.0)

app/assets/javascripts/environments/environment_details/components/kubernetes/delete_pod_modal.vue

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,14 @@ export default {
2121
required: true,
2222
type: Object,
2323
},
24+
agentId: {
25+
required: true,
26+
type: String,
27+
},
28+
environmentId: {
29+
required: true,
30+
type: String,
31+
},
2432
},
2533
data() {
2634
return {
@@ -112,6 +120,9 @@ export default {
112120
variant="danger"
113121
category="primary"
114122
data-testid="delete-pod-button"
123+
data-event-tracking="click_delete_pod"
124+
:data-event-label="agentId"
125+
:data-event-property="environmentId"
115126
@click="deletePod"
116127
>{{ $options.i18n.buttonPrimary }}
117128
</gl-button>

app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_overview.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ export default {
4646
type: String,
4747
required: true,
4848
},
49+
environmentId: {
50+
type: String,
51+
required: true,
52+
},
4953
clusterAgent: {
5054
type: Object,
5155
required: false,
@@ -249,6 +253,8 @@ export default {
249253
<delete-pod-modal
250254
:pod="podToDelete"
251255
:configuration="k8sAccessConfiguration"
256+
:agent-id="gitlabAgentId"
257+
:environment-id="environmentId"
252258
@close="onCloseModal"
253259
/>
254260

app/assets/javascripts/environments/environment_details/index.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import { GlLoadingIcon, GlTabs, GlTab, GlBadge } from '@gitlab/ui';
44
import { s__ } from '~/locale';
55
import { getParameterValues, setUrlParams, updateHistory } from '~/lib/utils/url_utility';
6+
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
67
import environmentClusterAgentQuery from '~/environments/graphql/queries/environment_cluster_agent.query.graphql';
78
import DeploymentHistory from './components/deployment_history.vue';
89
import KubernetesOverview from './components/kubernetes/kubernetes_overview.vue';
@@ -68,6 +69,10 @@ export default {
6869
fluxResourcePath() {
6970
return this.environment?.fluxResourcePath || '';
7071
},
72+
environmentId() {
73+
const idFromGraphQlId = getIdFromGraphQLId(this.environment.id);
74+
return idFromGraphQlId ? idFromGraphQlId.toString() : this.environment.id;
75+
},
7176
},
7277
i18n: {
7378
deploymentHistory: s__('Environments|Deployment history'),
@@ -108,6 +113,7 @@ export default {
108113
>
109114
<kubernetes-overview
110115
:environment-name="environmentName"
116+
:environment-id="environmentId"
111117
:cluster-agent="environment.clusterAgent"
112118
:kubernetes-namespace="kubernetesNamespace"
113119
:flux-resource-path="fluxResourcePath"

app/assets/javascripts/graphql_shared/possible_types.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@
116116
"ConanMetadata",
117117
"MavenMetadata",
118118
"NugetMetadata",
119-
"PypiMetadata"
119+
"PypiMetadata",
120+
"TerraformModuleMetadata"
120121
],
121122
"Registrable": [
122123
"CiSecureFileRegistry",
@@ -148,6 +149,11 @@
148149
"BaseService",
149150
"JiraService"
150151
],
152+
"TerraformModuleMetadataSharedFields": [
153+
"TerraformModuleMetadataExample",
154+
"TerraformModuleMetadataRoot",
155+
"TerraformModuleMetadataSubmodule"
156+
],
151157
"TimeboxReportInterface": [
152158
"Iteration",
153159
"Milestone"

app/assets/javascripts/issues/list/constants.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ export const filtersMap = {
230230
},
231231
[OPERATOR_NOT]: {
232232
[NORMAL_FILTER]: 'not[assignee_username][]',
233+
[ALTERNATIVE_FILTER]: 'not[assignee_username]',
233234
},
234235
[OPERATOR_OR]: {
235236
[NORMAL_FILTER]: 'or[assignee_username][]',

app/assets/javascripts/labels/label_manager.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ export default class LabelManager {
1414
this.otherLabels = otherLabels || $('.js-other-labels');
1515
this.errorMessage = __('Unable to update label prioritization at this time');
1616
this.emptyState = document.querySelector('#js-priority-labels-empty-state');
17-
this.$badgeItemTemplate = $('#js-badge-item-template');
1817

1918
if ('sortable' in this.prioritizedLabels.data()) {
2019
Sortable.create(this.prioritizedLabels.get(0), {
@@ -66,8 +65,6 @@ export default class LabelManager {
6665
}
6766

6867
const $detachedLabel = $label.detach();
69-
this.toggleLabelPriorityBadge($detachedLabel, action);
70-
7168
const $labelEls = $target.find('.js-label-list-item');
7269

7370
/*
@@ -102,14 +99,6 @@ export default class LabelManager {
10299
}
103100
}
104101

105-
toggleLabelPriorityBadge($label, action) {
106-
if (action === 'remove') {
107-
$('.js-priority-badge', $label).remove();
108-
} else {
109-
$('.label-links', $label).prepend(this.$badgeItemTemplate.clone().html());
110-
}
111-
}
112-
113102
onPrioritySortUpdate() {
114103
this.savePrioritySort().catch(() =>
115104
createAlert({

app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ export default {
192192
icon: 'user',
193193
token: UserToken,
194194
dataType: 'user',
195-
operators: OPERATORS_IS,
195+
operators: OPERATORS_IS_NOT,
196196
fullPath: this.fullPath,
197197
isProject: true,
198198
recentSuggestionsStorageKey: `${this.fullPath}-merge-requests-recent-tokens-assignee`,

app/assets/javascripts/merge_requests/list/queries/get_merge_requests.query.graphql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ query getMergeRequests(
1818
$milestoneWildcardId: MilestoneWildcardId
1919
$sourceBranches: [String!]
2020
$targetBranches: [String!]
21+
$not: MergeRequestsResolverNegatedParams
2122
$beforeCursor: String
2223
$afterCursor: String
2324
$firstPageSize: Int
@@ -39,6 +40,7 @@ query getMergeRequests(
3940
milestoneWildcardId: $milestoneWildcardId
4041
sourceBranches: $sourceBranches
4142
targetBranches: $targetBranches
43+
not: $not
4244
before: $beforeCursor
4345
after: $afterCursor
4446
first: $firstPageSize

app/assets/javascripts/merge_requests/list/queries/get_merge_requests_counts.query.graphql

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ query getMergeRequestsCount(
44
$assigneeUsernames: String
55
$milestoneTitle: String
66
$milestoneWildcardId: MilestoneWildcardId
7+
$not: MergeRequestsResolverNegatedParams
78
) {
89
project(fullPath: $fullPath) {
910
id
@@ -13,6 +14,7 @@ query getMergeRequestsCount(
1314
assigneeWildcardId: $assigneeWildcardId
1415
milestoneTitle: $milestoneTitle
1516
milestoneWildcardId: $milestoneWildcardId
17+
not: $not
1618
) {
1719
count
1820
}
@@ -22,6 +24,7 @@ query getMergeRequestsCount(
2224
assigneeWildcardId: $assigneeWildcardId
2325
milestoneTitle: $milestoneTitle
2426
milestoneWildcardId: $milestoneWildcardId
27+
not: $not
2528
) {
2629
count
2730
}
@@ -31,6 +34,7 @@ query getMergeRequestsCount(
3134
assigneeWildcardId: $assigneeWildcardId
3235
milestoneTitle: $milestoneTitle
3336
milestoneWildcardId: $milestoneWildcardId
37+
not: $not
3438
) {
3539
count
3640
}
@@ -40,6 +44,7 @@ query getMergeRequestsCount(
4044
assigneeWildcardId: $assigneeWildcardId
4145
milestoneTitle: $milestoneTitle
4246
milestoneWildcardId: $milestoneWildcardId
47+
not: $not
4348
) {
4449
count
4550
}

app/assets/javascripts/packages_and_registries/container_registry/explorer/components/details_page/details_header.vue

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import {
44
GlDisclosureDropdownItem,
55
GlIcon,
66
GlTooltipDirective,
7+
GlBadge,
78
} from '@gitlab/ui';
89
import { sprintf, n__, s__ } from '~/locale';
910
import MetadataItem from '~/vue_shared/components/registry/metadata_item.vue';
1011
import TitleArea from '~/vue_shared/components/registry/title_area.vue';
1112
import timeagoMixin from '~/vue_shared/mixins/timeago';
1213
import { formatDate } from '~/lib/utils/datetime_utility';
1314
import { numberToHumanSize } from '~/lib/utils/number_utils';
15+
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
1416
import {
1517
CREATED_AT,
1618
LAST_PUBLISHED_AT,
@@ -31,17 +33,23 @@ import {
3133
ONGOING_STATUS,
3234
ROOT_IMAGE_TOOLTIP,
3335
} from '../../constants/index';
34-
3536
import getContainerRepositoryMetadata from '../../graphql/queries/get_container_repository_metadata.query.graphql';
3637
import { getImageName } from '../../utils';
3738
3839
export default {
3940
name: 'DetailsHeader',
40-
components: { GlDisclosureDropdown, GlDisclosureDropdownItem, GlIcon, TitleArea, MetadataItem },
41+
components: {
42+
GlDisclosureDropdown,
43+
GlDisclosureDropdownItem,
44+
GlIcon,
45+
TitleArea,
46+
MetadataItem,
47+
GlBadge,
48+
},
4149
directives: {
4250
GlTooltip: GlTooltipDirective,
4351
},
44-
mixins: [timeagoMixin],
52+
mixins: [timeagoMixin, glFeatureFlagsMixin()],
4553
inject: ['config'],
4654
props: {
4755
image: {
@@ -128,6 +136,12 @@ export default {
128136
const { size } = this.imageDetails;
129137
return size ? numberToHumanSize(Number(size)) : null;
130138
},
139+
showBadgeProtected() {
140+
return (
141+
Boolean(this.glFeatures.containerRegistryProtectedContainers) &&
142+
Boolean(this.image?.protectionRuleExists)
143+
);
144+
},
131145
},
132146
methods: {
133147
formatDate(date) {
@@ -137,6 +151,9 @@ export default {
137151
i18n: {
138152
DELETE_IMAGE_TEXT,
139153
MORE_ACTIONS_TEXT,
154+
BADGE_PROTECTED_TOOLTIP_TEXT: s__(
155+
'ContainerRegistry|A protection rule exists for this container repository.',
156+
),
140157
},
141158
};
142159
</script>
@@ -187,6 +204,7 @@ export default {
187204
data-testid="created-and-visibility"
188205
/>
189206
</template>
207+
190208
<template v-if="containsLastPublishedAtDate" #metadata-last-published-at>
191209
<metadata-item
192210
icon="calendar"
@@ -195,6 +213,19 @@ export default {
195213
data-testid="last-published-at"
196214
/>
197215
</template>
216+
217+
<template #metadata-protection-rule-exists>
218+
<gl-badge
219+
v-if="showBadgeProtected"
220+
v-gl-tooltip="{ title: $options.i18n.BADGE_PROTECTED_TOOLTIP_TEXT }"
221+
icon-size="sm"
222+
size="sm"
223+
variant="neutral"
224+
>
225+
{{ __('protected') }}
226+
</gl-badge>
227+
</template>
228+
198229
<template v-if="!deleteButtonDisabled" #right-actions>
199230
<gl-disclosure-dropdown
200231
category="tertiary"

app/assets/javascripts/packages_and_registries/container_registry/explorer/graphql/queries/get_container_repository_details.query.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ query getContainerRepositoryDetails($id: ContainerRepositoryID!) {
88
createdAt
99
expirationPolicyStartedAt
1010
expirationPolicyCleanupStatus
11+
protectionRuleExists
1112
project {
1213
id
1314
visibility

app/assets/javascripts/packages_and_registries/container_registry/explorer/graphql/queries/get_container_repository_metadata.query.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ query getContainerRepositoryMetadata(
77
tagsCount
88
size @include(if: $metadataDatabaseEnabled)
99
lastPublishedAt @include(if: $metadataDatabaseEnabled)
10+
protectionRuleExists
1011
}
1112
}

0 commit comments

Comments
 (0)