diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue index 3ff2488d8787e4b7713cce078bf2e78788ee94ec..f4b65479fa006de2dfab1a201c5e800db9703cb8 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue @@ -11,6 +11,7 @@ import { GlSkeletonLoader, } from '@gitlab/ui'; import { isEmpty, isNil } from 'lodash'; +import * as Sentry from '~/sentry/sentry_browser_wrapper'; import axios from '~/lib/utils/axios_utils'; import readyToMergeMixin from 'ee_else_ce/vue_merge_request_widget/mixins/ready_to_merge'; import readyToMergeQuery from 'ee_else_ce/vue_merge_request_widget/queries/states/ready_to_merge.query.graphql'; @@ -204,6 +205,7 @@ export default { editCommitMessage: false, isRebaseInProgress: false, isRebaseModalVisible: false, + relatedLinks: this.mr.relatedLinks, }; }, computed: { @@ -377,6 +379,8 @@ export default { eventHub.$on('ApprovalUpdated', this.updateGraphqlState); eventHub.$on('MRWidgetUpdateRequested', this.updateGraphqlState); eventHub.$on('mr.discussion.updated', this.updateGraphqlState); + + this.fetchRelatedLinks(); }, beforeDestroy() { eventHub.$off('ApprovalUpdated', this.updateGraphqlState); @@ -584,6 +588,35 @@ export default { this.isRebaseInProgress = false; } }, + async fetchRelatedLinks() { + if (!this.mr.mergeRequestIssueLinksPath) return; + + try { + const { + data: { issues_links: issuesLinks }, + } = await axios.get(this.mr.mergeRequestIssueLinksPath); + + if (issuesLinks) { + const { closing } = issuesLinks; + const mentioned = issuesLinks.mentioned_but_not_closing; + const assignToMe = issuesLinks.assign_to_closing; + const unassignedCount = issuesLinks.assign_to_closing_count; + + if (closing || mentioned || unassignedCount) { + this.relatedLinks = { + closing, + mentioned, + assignToMe, + closingCount: issuesLinks.closing_count, + mentionedCount: issuesLinks.mentioned_count, + unassignedCount, + }; + } + } + } catch (error) { + Sentry.captureException(error); + } + }, }, i18n: { mergeCommitTemplateHintText: s__( @@ -745,11 +778,11 @@ export default { :target-branch="state.targetBranch" /> -