Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-04-29 00:24:53 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-04-29 00:24:53 +0300
commit893736005760f22ca0ed52d707dfdb9be6d5dce9 (patch)
tree91db010bc678b617dd945bcfe2cecb8af53c499c /app
parent5509e479900ee537980a126287c20327c41a61d6 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/batch_comments/index.js3
-rw-r--r--app/assets/javascripts/content_editor/components/bubble_menus/link_bubble_menu.vue9
-rw-r--r--app/assets/javascripts/merge_request_tabs.js2
-rw-r--r--app/assets/javascripts/mr_notes/index.js23
-rw-r--r--app/assets/javascripts/mr_notes/init.js4
-rw-r--r--app/assets/javascripts/mr_notes/init_mr_notes.js22
-rw-r--r--app/assets/javascripts/mr_notes/init_notes.js3
-rw-r--r--app/assets/javascripts/mr_notes/mount_app.js6
-rw-r--r--app/assets/javascripts/pages/projects/merge_requests/page.js2
-rw-r--r--app/assets/javascripts/pages/projects/merge_requests/show/index.js4
-rw-r--r--app/assets/javascripts/vue_shared/components/markdown/header.vue3
-rw-r--r--app/controllers/projects/merge_requests_controller.rb1
-rw-r--r--app/services/metrics_service.rb6
13 files changed, 55 insertions, 33 deletions
diff --git a/app/assets/javascripts/batch_comments/index.js b/app/assets/javascripts/batch_comments/index.js
index f6e9bfd6690..bf9769ff359 100644
--- a/app/assets/javascripts/batch_comments/index.js
+++ b/app/assets/javascripts/batch_comments/index.js
@@ -4,7 +4,7 @@ import { mapActions, mapGetters } from 'vuex';
import { apolloProvider } from '~/graphql_shared/issuable_client';
import store from '~/mr_notes/stores';
-export const initReviewBar = () => {
+export const initReviewBar = ({ editorAiActions = [] } = {}) => {
const el = document.getElementById('js-review-bar');
if (!el) return;
@@ -21,6 +21,7 @@ export const initReviewBar = () => {
},
provide: {
newCommentTemplatePath: el.dataset.newCommentTemplatePath,
+ editorAiActions,
},
computed: {
...mapGetters('batchComments', ['draftsCount']),
diff --git a/app/assets/javascripts/content_editor/components/bubble_menus/link_bubble_menu.vue b/app/assets/javascripts/content_editor/components/bubble_menus/link_bubble_menu.vue
index a3065be3772..fd696670ddf 100644
--- a/app/assets/javascripts/content_editor/components/bubble_menus/link_bubble_menu.vue
+++ b/app/assets/javascripts/content_editor/components/bubble_menus/link_bubble_menu.vue
@@ -177,6 +177,8 @@ export default {
this.linkText = undefined;
this.linkHref = undefined;
this.linkCanonicalSrc = undefined;
+
+ this.isEditing = false;
},
},
tippyOptions: {
@@ -250,7 +252,12 @@ export default {
<gl-form-input id="link-text" v-model="linkText" data-testid="link-text" />
</gl-form-group>
<gl-form-group :label="__('URL')" label-for="link-href">
- <gl-form-input id="link-href" v-model="linkCanonicalSrc" data-testid="link-href" />
+ <gl-form-input
+ id="link-href"
+ v-model="linkCanonicalSrc"
+ autofocus
+ data-testid="link-href"
+ />
</gl-form-group>
<div class="gl-display-flex gl-justify-content-end">
<gl-button class="gl-mr-3" data-testid="cancel-link" @click="cancelEditingLink">
diff --git a/app/assets/javascripts/merge_request_tabs.js b/app/assets/javascripts/merge_request_tabs.js
index 201499f8509..8fc341c4ca8 100644
--- a/app/assets/javascripts/merge_request_tabs.js
+++ b/app/assets/javascripts/merge_request_tabs.js
@@ -177,7 +177,7 @@ function getActionFromHref(href) {
}
const pageBundles = {
- show: () => import(/* webpackPrefetch: true */ '~/mr_notes/init_notes'),
+ show: () => import(/* webpackPrefetch: true */ 'ee_else_ce/mr_notes/mount_app'),
diffs: () => import(/* webpackPrefetch: true */ '~/diffs'),
};
diff --git a/app/assets/javascripts/mr_notes/index.js b/app/assets/javascripts/mr_notes/index.js
index a202923bd21..10fb89feccc 100644
--- a/app/assets/javascripts/mr_notes/index.js
+++ b/app/assets/javascripts/mr_notes/index.js
@@ -1,22 +1,3 @@
-import initCherryPickCommitModal from '~/projects/commit/init_cherry_pick_commit_modal';
-import initRevertCommitModal from '~/projects/commit/init_revert_commit_modal';
-import { initMrStateLazyLoad } from '~/mr_notes/init';
-import MergeRequest from '../merge_request';
-import { resetServiceWorkersPublicPath } from '../lib/utils/webpack';
+import initMrNotes from './init_mr_notes';
-export default function initMrNotes() {
- resetServiceWorkersPublicPath();
-
- const mrShowNode = document.querySelector('.merge-request');
- // eslint-disable-next-line no-new
- new MergeRequest({
- action: mrShowNode.dataset.mrAction,
- });
-
- initMrStateLazyLoad();
-
- document.addEventListener('merged:UpdateActions', () => {
- initRevertCommitModal('i_code_review_post_merge_submit_revert_modal');
- initCherryPickCommitModal('i_code_review_post_merge_submit_cherry_pick_modal');
- });
-}
+export default initMrNotes;
diff --git a/app/assets/javascripts/mr_notes/init.js b/app/assets/javascripts/mr_notes/init.js
index 79447bc115d..9852efea95f 100644
--- a/app/assets/javascripts/mr_notes/init.js
+++ b/app/assets/javascripts/mr_notes/init.js
@@ -22,7 +22,7 @@ function setupMrNotesState(notesDataset) {
store.dispatch('setEndpoints', endpoints);
}
-export function initMrStateLazyLoad() {
+export function initMrStateLazyLoad({ reviewBarParams } = {}) {
store.dispatch('setActiveTab', window.mrTabs.getCurrentAction());
window.mrTabs.eventHub.$on('MergeRequestTabChange', (value) =>
store.dispatch('setActiveTab', value),
@@ -42,7 +42,7 @@ export function initMrStateLazyLoad() {
eventHub.$once('fetchNotesData', () => store.dispatch('fetchNotes'));
requestIdleCallback(() => {
- initReviewBar();
+ initReviewBar(reviewBarParams);
initOverviewTabCounter();
initDiscussionCounter();
});
diff --git a/app/assets/javascripts/mr_notes/init_mr_notes.js b/app/assets/javascripts/mr_notes/init_mr_notes.js
new file mode 100644
index 00000000000..e0a8d1f7e7d
--- /dev/null
+++ b/app/assets/javascripts/mr_notes/init_mr_notes.js
@@ -0,0 +1,22 @@
+import initCherryPickCommitModal from '~/projects/commit/init_cherry_pick_commit_modal';
+import initRevertCommitModal from '~/projects/commit/init_revert_commit_modal';
+import { initMrStateLazyLoad } from '~/mr_notes/init';
+import MergeRequest from '../merge_request';
+import { resetServiceWorkersPublicPath } from '../lib/utils/webpack';
+
+export default function initMrNotes(lazyLoadParams) {
+ resetServiceWorkersPublicPath();
+
+ const mrShowNode = document.querySelector('.merge-request');
+ // eslint-disable-next-line no-new
+ new MergeRequest({
+ action: mrShowNode.dataset.mrAction,
+ });
+
+ initMrStateLazyLoad(lazyLoadParams);
+
+ document.addEventListener('merged:UpdateActions', () => {
+ initRevertCommitModal('i_code_review_post_merge_submit_revert_modal');
+ initCherryPickCommitModal('i_code_review_post_merge_submit_cherry_pick_modal');
+ });
+}
diff --git a/app/assets/javascripts/mr_notes/init_notes.js b/app/assets/javascripts/mr_notes/init_notes.js
index d537117d962..adee18184aa 100644
--- a/app/assets/javascripts/mr_notes/init_notes.js
+++ b/app/assets/javascripts/mr_notes/init_notes.js
@@ -12,7 +12,7 @@ import NotesApp from '../notes/components/notes_app.vue';
import { getNotesFilterData } from '../notes/utils/get_notes_filter_data';
import initWidget from '../vue_merge_request_widget';
-export default () => {
+export default ({ editorAiActions = [] } = {}) => {
requestIdleCallback(
() => {
renderGFM(document.getElementById('diff-notes-app'));
@@ -42,6 +42,7 @@ export default () => {
provide: {
reportAbusePath: notesDataset.reportAbusePath,
newCommentTemplatePath: notesDataset.newCommentTemplatePath,
+ editorAiActions,
},
data() {
const noteableData = JSON.parse(notesDataset.noteableData);
diff --git a/app/assets/javascripts/mr_notes/mount_app.js b/app/assets/javascripts/mr_notes/mount_app.js
new file mode 100644
index 00000000000..f635492e6a9
--- /dev/null
+++ b/app/assets/javascripts/mr_notes/mount_app.js
@@ -0,0 +1,6 @@
+import initNotes from './init_notes';
+
+// this module is required for the EE functions to work properly with merge request tabs
+export default () => {
+ initNotes();
+};
diff --git a/app/assets/javascripts/pages/projects/merge_requests/page.js b/app/assets/javascripts/pages/projects/merge_requests/page.js
index 3c420a0ee1a..fbd45f4bd7d 100644
--- a/app/assets/javascripts/pages/projects/merge_requests/page.js
+++ b/app/assets/javascripts/pages/projects/merge_requests/page.js
@@ -1,8 +1,8 @@
import Vue from 'vue';
import VueApollo from 'vue-apollo';
+import initMrNotes from 'ee_else_ce/mr_notes';
import StickyHeader from '~/merge_requests/components/sticky_header.vue';
import { initIssuableHeaderWarnings } from '~/issuable';
-import initMrNotes from '~/mr_notes';
import store from '~/mr_notes/stores';
import initSidebarBundle from '~/sidebar/sidebar_bundle';
import { apolloProvider } from '~/graphql_shared/issuable_client';
diff --git a/app/assets/javascripts/pages/projects/merge_requests/show/index.js b/app/assets/javascripts/pages/projects/merge_requests/show/index.js
index 91394755367..38cc4337047 100644
--- a/app/assets/javascripts/pages/projects/merge_requests/show/index.js
+++ b/app/assets/javascripts/pages/projects/merge_requests/show/index.js
@@ -1,7 +1,7 @@
-import initNotesApp from '~/mr_notes/init_notes';
+import mountNotesApp from 'ee_else_ce/mr_notes/mount_app';
import { initReportAbuse } from '~/projects/report_abuse';
import { initMrPage } from '../page';
initMrPage();
-initNotesApp();
+mountNotesApp();
initReportAbuse();
diff --git a/app/assets/javascripts/vue_shared/components/markdown/header.vue b/app/assets/javascripts/vue_shared/components/markdown/header.vue
index 75bb622234a..355c60040a4 100644
--- a/app/assets/javascripts/vue_shared/components/markdown/header.vue
+++ b/app/assets/javascripts/vue_shared/components/markdown/header.vue
@@ -29,8 +29,7 @@ export default {
GlTab,
DrawioToolbarButton,
CommentTemplatesDropdown,
- AiActionsDropdown: () =>
- import('ee_component/vue_shared/components/markdown/ai_actions_dropdown.vue'),
+ AiActionsDropdown: () => import('ee_component/ai/components/ai_actions_dropdown.vue'),
},
directives: {
GlTooltip: GlTooltipDirective,
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index a5d3bc4ac4a..89b7767aa40 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -51,6 +51,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
push_frontend_feature_flag(:code_quality_inline_drawer, project)
push_frontend_feature_flag(:hide_create_issue_resolve_all, project)
push_frontend_feature_flag(:auto_merge_labels_mr_widget, project)
+ push_frontend_feature_flag(:summarize_my_code_review, current_user)
end
around_action :allow_gitaly_ref_name_caching, only: [:index, :show, :diffs, :discussions]
diff --git a/app/services/metrics_service.rb b/app/services/metrics_service.rb
index d27328f89cd..f39cc1a8534 100644
--- a/app/services/metrics_service.rb
+++ b/app/services/metrics_service.rb
@@ -4,7 +4,11 @@ require 'prometheus/client/formats/text'
class MetricsService
def prometheus_metrics_text
- ::Prometheus::Client::Formats::Text.marshal_multiprocess(multiprocess_metrics_path)
+ if Feature.enabled?(:prom_metrics_rust)
+ ::Prometheus::Client::Formats::Text.marshal_multiprocess(multiprocess_metrics_path, use_rust: true)
+ else
+ ::Prometheus::Client::Formats::Text.marshal_multiprocess(multiprocess_metrics_path)
+ end
end
def metrics_text