Skip to content

Commit fecb8ec

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

File tree

103 files changed

+1935
-1034
lines changed

Some content is hidden

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

103 files changed

+1935
-1034
lines changed

.gitlab/ci/gitlab-com/danger-review.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
include:
22
- project: gitlab-org/quality/pipeline-common
3-
ref: 7.8.0
3+
ref: 7.10.2
44
file:
55
- /ci/danger-review.yml
66

.gitlab/ci/rails.gitlab-ci.yml

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -754,13 +754,38 @@ rspec system pg14-as-if-foss clusterwide-db:
754754
rspec-ee unit gitlab-duo-chat pg14:
755755
variables:
756756
REAL_AI_REQUEST: "true"
757-
VERTEX_AI_EMBEDDINGS: "true"
757+
RSPEC_RETRY_RETRY_COUNT: 0
758758
extends:
759759
- .rspec-ee-base-pg14
760-
- .rails:rules:ee-gitlab-duo-chat-vertex-ai
760+
- .rails:rules:ee-gitlab-duo-chat-base
761+
parallel:
762+
matrix:
763+
- DUO_RSPEC: ["lib/gitlab/llm/chain/agents/zero_shot/executor_real_requests_spec.rb", "support_specs/helpers/chat_qa_evaluation_helpers_spec.rb"]
761764
script:
762765
- !reference [.base-script, script]
763-
- rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag real_ai_request"
766+
- bundle exec rspec -Ispec -rspec_helper --failure-exit-code 0 --tag real_ai_request --color -- ee/spec/${DUO_RSPEC}
767+
768+
rspec-ee unit gitlab-duo-chat-qa pg14:
769+
variables:
770+
REAL_AI_REQUEST: "true"
771+
RSPEC_RETRY_RETRY_COUNT: 0
772+
extends:
773+
- .rspec-ee-base-pg14
774+
- .rails:rules:ee-gitlab-duo-chat-base
775+
parallel:
776+
matrix:
777+
- DUO_RSPEC: ["qa_epic_spec.rb", "qa_issue_spec.rb"]
778+
script:
779+
- !reference [.base-script, script]
780+
- source ./scripts/utils.sh
781+
- install_gitlab_gem
782+
- bundle exec rspec -Ispec -rspec_helper --failure-exit-code 0 --tag real_ai_request --color -- ee/spec/lib/gitlab/llm/chain/agents/zero_shot/${DUO_RSPEC}
783+
- ./scripts/duo_chat/reporter.rb
784+
artifacts:
785+
expire_in: 5d
786+
paths:
787+
- tmp/duo_chat/qa*.json
788+
- "${DUO_RSPEC}.md"
764789

765790
rspec-ee migration pg14:
766791
extends:

.gitlab/ci/rules.gitlab-ci.yml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
.if-merge-request-labels-run-in-ruby3_1: &if-merge-request-labels-run-in-ruby3_1
6666
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_1/'
6767

68-
.if-merge-request-labels-run-in-non-default-ruby: &if-merge-request-labels-run-in-non-default-ruby
68+
.if-merge-request-labels-run-in-ruby3_2: &if-merge-request-labels-run-in-ruby3_2
6969
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3_2/'
7070

7171
.if-merge-request-labels-as-if-foss: &if-merge-request-labels-as-if-foss
@@ -2117,20 +2117,14 @@
21172117
when: never
21182118
- if: '$ANTHROPIC_API_KEY == null'
21192119
when: never
2120-
- <<: *if-merge-request
2121-
changes: *ai-patterns
2122-
when: manual
2123-
allow_failure: true
2124-
2125-
.rails:rules:ee-gitlab-duo-chat-vertex-ai:
2126-
rules:
2127-
- !reference [".rails:rules:ee-gitlab-duo-chat-base", rules]
21282120
- if: '$VERTEX_AI_PROJECT == null'
21292121
when: never
21302122
- if: '$VERTEX_AI_CREDENTIALS == null'
21312123
when: never
2132-
- if: '$VERTEX_AI_EMBEDDINGS == null'
2133-
when: never
2124+
- <<: *if-merge-request
2125+
changes: *ai-patterns
2126+
when: manual
2127+
allow_failure: true
21342128

21352129
.rails:rules:as-if-foss-migration:
21362130
rules:
@@ -2746,7 +2740,7 @@
27462740

27472741
.setup:rules:verify-default-ruby:
27482742
rules:
2749-
- <<: *if-merge-request-labels-run-in-non-default-ruby
2743+
- <<: *if-merge-request-labels-run-in-ruby3_2
27502744

27512745
.setup:rules:verify-tests-yml:
27522746
rules:

GITALY_SERVER_VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5867f71c734a055e3af41e237ce19f992dd68120
1+
9bf28d2089501b82b40e2b9f6ad21cf80751f15f

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,7 @@ gem 'kas-grpc', '~> 0.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
537537

538538
gem 'grpc', '~> 1.58.0' # rubocop:todo Gemfile/MissingFeatureCategory
539539

540-
gem 'google-protobuf', '~> 3.24', '>= 3.24.4' # rubocop:todo Gemfile/MissingFeatureCategory
540+
gem 'google-protobuf', '~> 3.25' # rubocop:todo Gemfile/MissingFeatureCategory
541541

542542
gem 'toml-rb', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
543543

Gemfile.checksum

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -243,16 +243,16 @@
243243
{"name":"google-cloud-errors","version":"1.3.0","platform":"ruby","checksum":"450b681e24c089a20721a01acc4408bb4a7b0df28c175aaab488da917480d64b"},
244244
{"name":"google-cloud-profiler-v2","version":"0.4.0","platform":"ruby","checksum":"53fc2ab175d08f54233c644310d47798feac996220916815c4fb44c937b5d3e3"},
245245
{"name":"google-cloud-storage","version":"1.44.0","platform":"ruby","checksum":"299a1e055c9277c8120f7c10d21d37e4d8c17c7b963350c0e0bff7e9d9a570ea"},
246-
{"name":"google-protobuf","version":"3.24.4","platform":"aarch64-linux","checksum":"d3e824753a9511e4c08439586069a636c23d9ca16a509f316a895353c11a1ac8"},
247-
{"name":"google-protobuf","version":"3.24.4","platform":"arm64-darwin","checksum":"e13b12a648668d99d8b71ffcf378bfd744885af11e983460677073b2c8e2a979"},
248-
{"name":"google-protobuf","version":"3.24.4","platform":"java","checksum":"657d67b5425afa0beb94e54df7d0a15da3daa45a500fc252e7550806669b47f1"},
249-
{"name":"google-protobuf","version":"3.24.4","platform":"ruby","checksum":"38a403ca2fd905d3ed7c20f8d2e4718af1be3eb99093d35d7021383f6e72f2ca"},
250-
{"name":"google-protobuf","version":"3.24.4","platform":"x64-mingw-ucrt","checksum":"fc0396dd9f45ea54d494097e0077ee8c0cc002f1c825f06ed40f4e3b4de6948c"},
251-
{"name":"google-protobuf","version":"3.24.4","platform":"x64-mingw32","checksum":"ba1b5cd5effa6c6a738eb2d2d0701e3d83d95b81842564b5feb9c42579722fc6"},
252-
{"name":"google-protobuf","version":"3.24.4","platform":"x86-linux","checksum":"f9cae6c878381da082eab1d3eceb84525c7d7413401e1a4a5ee179b66fdbebe0"},
253-
{"name":"google-protobuf","version":"3.24.4","platform":"x86-mingw32","checksum":"4cf31ca7d447a86200dfcb86f64ddd046c1f9c96dc537c9d74ab19e0c36a8f0b"},
254-
{"name":"google-protobuf","version":"3.24.4","platform":"x86_64-darwin","checksum":"44d541e980989f1aa007a3c5481ec93932b2e50cfa63c22427dd42460a5d2865"},
255-
{"name":"google-protobuf","version":"3.24.4","platform":"x86_64-linux","checksum":"68f65302fad9f47c88d38136fda0dec6078f3a2a79fb5bcccf62121fd8fcca50"},
246+
{"name":"google-protobuf","version":"3.25.0","platform":"aarch64-linux","checksum":"4455602758a60bd698a57c7210efc440523523fbe0c0c712624e57bb02c6c9d4"},
247+
{"name":"google-protobuf","version":"3.25.0","platform":"arm64-darwin","checksum":"c1ba0bb5504155f5bd0d11d649316ff52cef5b2a1e7ce876497815f98be3c5a6"},
248+
{"name":"google-protobuf","version":"3.25.0","platform":"java","checksum":"7006d8485d6c729c081a7eb8592d8c494fd8716863a7fb7ad7c76188eafc41a5"},
249+
{"name":"google-protobuf","version":"3.25.0","platform":"ruby","checksum":"b51632d900b633fbd6164784351bee93001dfd3f32bd18f6505fc97d64e1a1a1"},
250+
{"name":"google-protobuf","version":"3.25.0","platform":"x64-mingw-ucrt","checksum":"e4935e41e0f3c32fe96e496803de61d36273474ebb72ac7ee9db3a4ecb4b5cd6"},
251+
{"name":"google-protobuf","version":"3.25.0","platform":"x64-mingw32","checksum":"42b13346a1be8346e4d62a41ac7150f374ca5d254b3bb4bf3bc817de522ce969"},
252+
{"name":"google-protobuf","version":"3.25.0","platform":"x86-linux","checksum":"7f391788f013778ffae197a184481ff24265a977d1cb2270b13a5af1ba2f53d5"},
253+
{"name":"google-protobuf","version":"3.25.0","platform":"x86-mingw32","checksum":"2f42a5738af0a874b35b228a2df8de21a58fa265627cfd0fa57edaea160c1087"},
254+
{"name":"google-protobuf","version":"3.25.0","platform":"x86_64-darwin","checksum":"c3d4a144d8f4d61193ab1a4c5d52e2d40562ba13e07eeca1fca34bc59212c352"},
255+
{"name":"google-protobuf","version":"3.25.0","platform":"x86_64-linux","checksum":"c6a76175c921b300ee62b21d36e8a9c07f0a4967a17be0671a83c57d7bf9bd0f"},
256256
{"name":"googleapis-common-protos","version":"1.4.0","platform":"ruby","checksum":"da2380fb5ab1563580816c74e8d684ac17512c3654c829a3ee84f6d6139de382"},
257257
{"name":"googleapis-common-protos-types","version":"1.5.0","platform":"ruby","checksum":"5769cf7376abc86ef7f5897a4aaca1d5c5a3c49ddabeddd2c251fcf8155f858b"},
258258
{"name":"googleauth","version":"1.3.0","platform":"ruby","checksum":"51dd7362353cf1e90a2d01e1fb94321ae3926c776d4dc4a79db65230217ffcc2"},

Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -766,7 +766,7 @@ GEM
766766
google-cloud-core (~> 1.6)
767767
googleauth (>= 0.16.2, < 2.a)
768768
mini_mime (~> 1.0)
769-
google-protobuf (3.24.4)
769+
google-protobuf (3.25.0)
770770
googleapis-common-protos (1.4.0)
771771
google-protobuf (~> 3.14)
772772
googleapis-common-protos-types (~> 1.2)
@@ -1861,7 +1861,7 @@ DEPENDENCIES
18611861
google-apis-serviceusage_v1 (~> 0.28.0)
18621862
google-apis-sqladmin_v1beta4 (~> 0.41.0)
18631863
google-cloud-storage (~> 1.44.0)
1864-
google-protobuf (~> 3.24, >= 3.24.4)
1864+
google-protobuf (~> 3.25)
18651865
gpgme (~> 2.0.23)
18661866
grape (~> 1.7.1)
18671867
grape-entity (~> 0.10.0)

app/assets/javascripts/access_tokens/components/access_token_table_app.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ export default {
158158
:aria-label="$options.i18n.revokeButton"
159159
:data-confirm="modalMessage(name)"
160160
data-confirm-btn-variant="danger"
161-
data-testid="revoke-button"
161+
data-qa-selector="revoke_button"
162162
data-method="put"
163163
:href="revokePath"
164164
icon="remove"

app/assets/javascripts/access_tokens/components/expires_at_field.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export default {
6868
:input-name="inputAttrs.name"
6969
:input-id="inputAttrs.id"
7070
:placeholder="inputAttrs.placeholder"
71-
data-testid="expiry-date-field"
71+
data-qa-selector="expiry_date_field"
7272
/>
7373
<template #description>
7474
<template v-if="description">

app/assets/javascripts/access_tokens/components/new_access_token_app.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export default {
4545
formInputGroupProps() {
4646
return {
4747
id: this.$options.tokenInputId,
48-
'data-testid': 'created-access-token-field',
48+
'data-qa-selector': 'created_access_token_field',
4949
name: this.$options.tokenInputId,
5050
};
5151
},
@@ -110,7 +110,7 @@ export default {
110110
@[$options.EVENT_ERROR]="onError"
111111
@[$options.EVENT_SUCCESS]="onSuccess"
112112
>
113-
<div ref="container" data-testid="access-token-section">
113+
<div ref="container" data-testid="access-token-section" data-qa-selector="access_token_section">
114114
<gl-alert
115115
v-if="newToken"
116116
variant="success"

app/assets/javascripts/authentication/two_factor_auth/components/recovery_codes.vue

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,14 @@ export default {
115115
</gl-sprintf>
116116
</p>
117117

118-
<gl-card class="codes-to-print gl-my-5" data-testid="recovery-codes">
118+
<gl-card
119+
class="codes-to-print gl-my-5"
120+
data-testid="recovery-codes"
121+
data-qa-selector="codes_content"
122+
>
119123
<ul class="gl-m-0 gl-pl-5">
120124
<li v-for="(code, index) in codes" :key="index">
121-
<span class="gl-font-monospace" data-testid="code-content">{{ code }}</span>
125+
<span class="gl-font-monospace" data-qa-selector="code_content">{{ code }}</span>
122126
</li>
123127
</ul>
124128
</gl-card>
@@ -127,7 +131,7 @@ export default {
127131
<clipboard-button
128132
:title="$options.i18n.copyButton"
129133
:text="codesAsString"
130-
data-testid="copy-button"
134+
data-qa-selector="copy_button"
131135
@click="handleButtonClick($options.copyButtonAction)"
132136
>
133137
{{ $options.i18n.copyButton }}
@@ -159,7 +163,7 @@ export default {
159163
:disabled="proceedButtonDisabled"
160164
:title="$options.i18n.proceedButton"
161165
variant="confirm"
162-
data-testid="proceed-button"
166+
data-qa-selector="proceed_button"
163167
data-track-action="click_button"
164168
:data-track-label="`${$options.trackingLabelPrefix}proceed_button`"
165169
>{{ $options.i18n.proceedButton }}</gl-button

app/assets/javascripts/invite_members/components/invite_group_trigger.vue

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@ export default {
2828
</script>
2929

3030
<template>
31-
<gl-button :class="classes" data-testid="invite-a-group-button" @click="openModal">
31+
<gl-button
32+
:class="classes"
33+
data-qa-selector="invite_a_group_button"
34+
data-test-id="invite-group-button"
35+
@click="openModal"
36+
>
3237
{{ displayText }}
3338
</gl-button>
3439
</template>

app/assets/javascripts/invite_members/components/invite_members_trigger.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { s__ } from '~/locale';
44
import eventHub from '../event_hub';
55
import {
66
TRIGGER_ELEMENT_BUTTON,
7+
TRIGGER_DEFAULT_QA_SELECTOR,
78
TRIGGER_ELEMENT_WITH_EMOJI,
89
TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI,
910
TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN,
@@ -41,12 +42,18 @@ export default {
4142
required: false,
4243
default: 'button',
4344
},
45+
qaSelector: {
46+
type: String,
47+
required: false,
48+
default: TRIGGER_DEFAULT_QA_SELECTOR,
49+
},
4450
},
4551
computed: {
4652
componentAttributes() {
4753
return {
4854
class: this.classes,
49-
'data-testid': 'invite-members-button',
55+
'data-qa-selector': this.qaSelector,
56+
'data-test-id': 'invite-members-button',
5057
};
5158
},
5259
item() {

app/assets/javascripts/invite_members/components/invite_modal_base.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ export default {
173173
variant: 'confirm',
174174
disabled: this.submitDisabled,
175175
loading: this.isLoading,
176+
'data-qa-selector': 'invite_button',
176177
},
177178
};
178179
},
@@ -310,7 +311,7 @@ export default {
310311
<gl-form-select
311312
:id="dropdownId"
312313
v-model="selectedAccessLevel"
313-
data-testid="access-level-dropdown"
314+
data-qa-selector="access_level_dropdown"
314315
:options="accessLevelsOptions"
315316
/>
316317
</gl-form-group>

app/assets/javascripts/invite_members/components/members_token_select.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ export default {
102102
textInputAttrs() {
103103
return {
104104
'data-testid': 'members-token-select-input',
105+
'data-qa-selector': 'members_token_select_input',
105106
id: this.inputId,
106107
};
107108
},

app/assets/javascripts/invite_members/constants.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export const TRIGGER_ELEMENT_WITH_EMOJI = 'text-emoji';
2020
export const TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI = 'dropdown-text-emoji';
2121
export const TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN = 'dropdown-text';
2222
export const INVITE_MEMBER_MODAL_TRACKING_CATEGORY = 'invite_members_modal';
23+
export const TRIGGER_DEFAULT_QA_SELECTOR = 'invite_members_button';
2324
export const IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_CATEGORY = 'invite_project_members_modal';
2425
export const IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_LABEL = 'project-members-page';
2526
export const MEMBERS_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite members');

app/assets/javascripts/pages/profiles/two_factor_auths/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const skippable = twoFactorNode ? parseBoolean(twoFactorNode.dataset.twoFactorSk
88

99
if (skippable) {
1010
const button = `<div class="gl-alert-actions">
11-
<a class="btn gl-button btn-md btn-confirm gl-alert-action" data-testid="configure-it-later-button" data-method="patch" href="${twoFactorNode.dataset.two_factor_skip_url}">Configure it later</a>
11+
<a class="btn gl-button btn-md btn-confirm gl-alert-action" data-qa-selector="configure_it_later_button" data-method="patch" href="${twoFactorNode.dataset.two_factor_skip_url}">Configure it later</a>
1212
</div>`;
1313
const flashAlert = document.querySelector('.flash-alert');
1414
if (flashAlert) {

app/assets/javascripts/profile/account/components/delete_account_modal.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export default {
4242
text: __('Delete account'),
4343
attributes: {
4444
variant: 'danger',
45-
'data-testid': 'confirm-delete-account-button',
45+
'data-qa-selector': 'confirm_delete_account_button',
4646
category: 'primary',
4747
disabled: !this.canSubmit,
4848
},
@@ -128,7 +128,7 @@ Once you confirm %{deleteAccount}, it cannot be undone or recovered.`),
128128
name="password"
129129
class="form-control"
130130
type="password"
131-
data-testid="password-confirmation-field"
131+
data-qa-selector="password_confirmation_field"
132132
aria-labelledby="input-label"
133133
/>
134134
<input

app/assets/javascripts/super_sidebar/components/user_menu.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ export default {
8888
text: this.$options.i18n.editProfile,
8989
href: this.data.settings.profile_path,
9090
extraAttrs: {
91-
'data-testid': 'edit-profile-link',
91+
'data-testid': 'edit_profile_link',
9292
...USER_MENU_TRACKING_DEFAULTS,
9393
'data-track-label': 'user_edit_profile',
9494
},
@@ -235,7 +235,7 @@ export default {
235235
:entity-name="data.name"
236236
:src="data.avatar_url"
237237
aria-hidden="true"
238-
data-testid="user-avatar-content"
238+
data-testid="user_avatar_content"
239239
/>
240240
<span
241241
v-if="showNotificationDot"

app/assets/javascripts/terms/components/app.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export default {
6666

6767
<template>
6868
<div>
69-
<div class="gl-relative gl-pb-0 gl-px-0" data-testid="terms-content">
69+
<div class="gl-relative gl-pb-0 gl-px-0" data-qa-selector="terms_content">
7070
<div
7171
class="terms-fade gl-absolute gl-left-5 gl-right-5 gl-bottom-0 gl-h-11 gl-pointer-events-none"
7272
></div>
@@ -97,7 +97,7 @@ export default {
9797
type="submit"
9898
variant="confirm"
9999
:disabled="acceptDisabled"
100-
data-testid="accept-terms-button"
100+
data-qa-selector="accept_terms_button"
101101
>{{ $options.i18n.accept }}</gl-button
102102
>
103103
<input :value="$options.csrf.token" type="hidden" name="authenticity_token" />

app/assets/javascripts/vue_shared/components/confirm_danger/confirm_danger_modal.vue

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ export default {
7272
attributes: {
7373
variant: 'danger',
7474
disabled: !this.isValid,
75-
'data-testid': 'confirm-danger-modal-button',
75+
'data-qa-selector': 'confirm_danger_modal_button',
7676
},
7777
};
7878
},
@@ -133,7 +133,8 @@ export default {
133133
id="confirm_name_input"
134134
v-model="confirmationPhrase"
135135
class="form-control"
136-
data-testid="confirm-danger-field"
136+
data-qa-selector="confirm_danger_field"
137+
data-testid="confirm-danger-input"
137138
type="text"
138139
/>
139140
</gl-form-group>

app/assets/javascripts/vue_shared/components/form/input_copy_toggle_visibility.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ export default {
176176
:aria-label="toggleVisibilityLabel"
177177
:icon="toggleVisibilityIcon"
178178
data-testid="toggle-visibility-button"
179+
data-qa-selector="toggle_visibility_button"
179180
@click.stop="handleToggleVisibilityButtonClick"
180181
/>
181182
<clipboard-button

app/controllers/concerns/issuable_actions.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@ def discussions
147147
finder = Issuable::DiscussionsListService.new(current_user, issuable, finder_params_for_issuable)
148148
discussion_notes = finder.execute
149149

150+
yield discussion_notes if block_given?
151+
150152
if finder.paginator.present? && finder.paginator.has_next_page?
151153
response.headers['X-Next-Page-Cursor'] = finder.paginator.cursor_for_next_page
152154
end

0 commit comments

Comments
 (0)