Skip to content

Commit 9d2ebf5

Browse files
author
GitLab Bot
committed
Add latest changes from gitlab-org/gitlab@master
1 parent 1cc5b35 commit 9d2ebf5

File tree

83 files changed

+9376
-224
lines changed

Some content is hidden

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

83 files changed

+9376
-224
lines changed

.gitlab/ci/qa-common/main.gitlab-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ workflow:
66

77
include:
88
- local: .gitlab/ci/version.yml
9-
- component: "gitlab.com/gitlab-org/quality/pipeline-common/allure-report@8.21.0"
9+
- component: "gitlab.com/gitlab-org/quality/pipeline-common/allure-report@8.22.0"
1010
inputs:
1111
job_name: "e2e-test-report"
1212
job_stage: "report"
@@ -16,7 +16,7 @@ include:
1616
gitlab_auth_token_variable_name: "PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE"
1717
allure_job_name: "${QA_RUN_TYPE}"
1818
- project: gitlab-org/quality/pipeline-common
19-
ref: 8.21.0
19+
ref: 8.22.0
2020
file:
2121
- /ci/base.gitlab-ci.yml
2222
- /ci/knapsack-report.yml

.gitlab/ci/qa-common/variables.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ variables:
1818
# Retry failed specs in separate process
1919
QA_RETRY_FAILED_SPECS: "true"
2020
# helm chart ref used by test-on-cng pipeline
21-
GITLAB_HELM_CHART_REF: "e7f459ab671d8fdaecddd34c739e3d53c498bae2"
21+
GITLAB_HELM_CHART_REF: "3466c297acf5efa6de6bdfaa3c12b696041faa02"

app/assets/javascripts/merge_requests/components/reviewers/reviewer_drawer.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export default {
7171
:reviewers="reviewers"
7272
:loading-reviewers="loadingReviewers"
7373
@request-review="(params) => $emit('request-review', params)"
74+
@remove-reviewer="(params) => $emit('remove-reviewer', params)"
7475
/>
7576
<approval-rules-wrapper :reviewers="reviewers" />
7677
</gl-drawer>

app/assets/javascripts/merge_requests/components/reviewers/reviewers_container.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,12 @@ export default {
8383
</div>
8484
<uncollapsed-reviewer-list
8585
v-else-if="reviewers.length"
86+
:is-editable="userPermissions.adminMergeRequest"
8687
:root-path="relativeUrlRoot"
8788
:users="reviewers"
8889
issuable-type="merge_request"
8990
@request-review="(params) => $emit('request-review', params)"
91+
@remove-reviewer="(params) => $emit('remove-reviewer', params)"
9092
/>
9193
<gl-empty-state v-else :svg-path="$options.noReviewersAssignedSvg" :svg-height="70">
9294
<template #description>

app/assets/javascripts/sidebar/components/reviewers/reviewer_title.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ export default {
8383
<reviewer-drawer
8484
:open="drawerOpen"
8585
@request-review="(params) => $emit('request-review', params)"
86+
@remove-reviewer="(data) => $emit('remove-reviewer', data)"
8687
@close="toggleDrawerOpen(false)"
8788
/>
8889
</mounting-portal>

app/assets/javascripts/sidebar/components/reviewers/reviewers.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ export default {
5151
requestReview(data) {
5252
this.$emit('request-review', data);
5353
},
54+
removeReviewer(data) {
55+
this.$emit('remove-reviewer', data);
56+
},
5457
},
5558
};
5659
</script>
@@ -84,6 +87,7 @@ export default {
8487
:root-path="rootPath"
8588
:issuable-type="issuableType"
8689
@request-review="requestReview"
90+
@remove-reviewer="removeReviewer"
8791
/>
8892
</div>
8993
</div>

app/assets/javascripts/sidebar/components/reviewers/sidebar_reviewers.vue

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Vue from 'vue';
55
import { createAlert } from '~/alert';
66
import { TYPE_ISSUE } from '~/issues/constants';
77
import { __ } from '~/locale';
8-
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
8+
import { isGid, getIdFromGraphQLId } from '~/graphql_shared/utils';
99
import { fetchUserCounts } from '~/super_sidebar/user_counts_fetch';
1010
import eventHub from '../../event_hub';
1111
import getMergeRequestReviewersQuery from '../../queries/get_merge_request_reviewers.query.graphql';
@@ -166,6 +166,17 @@ export default {
166166
requestReview(data) {
167167
this.mediator.requestReview(data);
168168
},
169+
async removeReviewerById(event) {
170+
const userId = isGid(event.userId) ? getIdFromGraphQLId(event.userId) : event.userId;
171+
this.store.reviewers = this.store.reviewers.filter((user) => user.id !== userId);
172+
try {
173+
await this.saveReviewers();
174+
} catch (error) {
175+
createAlert(__('Unable to remove a reviewer at the moment, try again later'), { error });
176+
} finally {
177+
event.done();
178+
}
179+
},
169180
},
170181
};
171182
</script>
@@ -177,6 +188,7 @@ export default {
177188
:loading="isLoading"
178189
:editable="canUpdate"
179190
@request-review="requestReview"
191+
@remove-reviewer="removeReviewerById"
180192
/>
181193
<reviewers
182194
v-if="!initialLoading"
@@ -187,6 +199,7 @@ export default {
187199
class="gl-pt-2"
188200
@request-review="requestReview"
189201
@assign-self="reviewBySelf"
202+
@remove-reviewer="removeReviewerById"
190203
/>
191204
</div>
192205
</template>

app/assets/javascripts/sidebar/components/reviewers/uncollapsed_reviewer_list.vue

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ const REVIEW_STATE_ICONS = {
3838
export default {
3939
i18n: {
4040
reRequestReview: __('Re-request review'),
41+
removeReviewer: s__('MergeRequest|Remove reviewer'),
4142
},
4243
components: {
4344
GlButton,
@@ -61,6 +62,11 @@ export default {
6162
required: false,
6263
default: TYPE_ISSUE,
6364
},
65+
isEditable: {
66+
type: Boolean,
67+
required: false,
68+
default: false,
69+
},
6470
},
6571
data() {
6672
return {
@@ -112,7 +118,13 @@ export default {
112118
this.loadingStates[userId] = LOADING_STATE;
113119
this.$emit('request-review', { userId, callback: this.requestReviewComplete });
114120
},
115-
121+
removeReviewer(userId) {
122+
this.loadingStates[userId] = LOADING_STATE;
123+
this.$emit('remove-reviewer', {
124+
userId,
125+
callback: () => this.requestRemovalComplete(userId),
126+
});
127+
},
116128
requestReviewComplete(userId, success) {
117129
if (success) {
118130
this.loadingStates[userId] = SUCCESS_STATE;
@@ -124,6 +136,9 @@ export default {
124136
this.loadingStates[userId] = null;
125137
}
126138
},
139+
requestRemovalComplete(userId) {
140+
delete this.loadingStates[userId];
141+
},
127142
reviewStateIcon(user) {
128143
if (user.mergeRequestInteraction.approved) {
129144
return {
@@ -201,6 +216,20 @@ export default {
201216
data-testid="reviewer-state-icon"
202217
/>
203218
</span>
219+
<span v-if="isEditable" class="gl-inline-flex gl-h-6 gl-w-6">
220+
<gl-button
221+
v-gl-tooltip.top.viewport
222+
:title="$options.i18n.removeReviewer"
223+
:aria-label="$options.i18n.removeReviewer"
224+
:loading="loadingStates[user.id] === $options.LOADING_STATE"
225+
class="gl-float-right gl-ml-2 !gl-text-subtle"
226+
size="small"
227+
icon="close"
228+
variant="link"
229+
data-testid="remove-request-button"
230+
@click="removeReviewer(user.id)"
231+
/>
232+
</span>
204233
</div>
205234
</div>
206235
</template>

app/assets/javascripts/work_items/components/create_work_item.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,7 @@ export default {
510510
class="js-assignee gl-mb-5"
511511
:can-update="canUpdate"
512512
:full-path="fullPath"
513+
:is-group="isGroup"
513514
:work-item-id="workItemId"
514515
:assignees="workItemAssignees.assignees.nodes"
515516
:participants="workItemParticipantNodes"
@@ -525,6 +526,7 @@ export default {
525526
class="js-labels gl-mb-5"
526527
:can-update="canUpdate"
527528
:full-path="fullPath"
529+
:is-group="isGroup"
528530
:work-item-id="workItemId"
529531
:work-item-iid="workItemIid"
530532
:work-item-type="selectedWorkItemTypeName"

app/assets/javascripts/work_items/components/shared/work_item_token_input.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ export default {
2727
GlAlert,
2828
},
2929
directives: { SafeHtml },
30-
inject: ['isGroup'],
3130
props: {
3231
value: {
3332
type: Array,
@@ -38,6 +37,11 @@ export default {
3837
type: String,
3938
required: true,
4039
},
40+
isGroup: {
41+
type: Boolean,
42+
required: false,
43+
default: false,
44+
},
4145
childrenType: {
4246
type: String,
4347
required: false,

0 commit comments

Comments
 (0)