summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js')
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js63
1 files changed, 42 insertions, 21 deletions
diff --git a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js
index 8c98ba1b023..846b1c453a1 100644
--- a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js
+++ b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js
@@ -43,15 +43,14 @@ export default class MergeRequestStore {
this.conflictsDocsPath = data.conflicts_docs_path;
this.mergeRequestPipelinesHelpPath = data.merge_request_pipelines_docs_path;
this.mergeTrainWhenPipelineSucceedsDocsPath = data.merge_train_when_pipeline_succeeds_docs_path;
- this.mergeStatus = data.merge_status;
this.commitMessage = data.default_merge_commit_message;
- this.shortMergeCommitSha = data.short_merge_commit_sha;
- this.mergeCommitSha = data.merge_commit_sha;
+ this.shortMergeCommitSha = data.short_merged_commit_sha;
+ this.mergeCommitSha = data.merged_commit_sha;
this.commitMessageWithDescription = data.default_merge_commit_message_with_description;
- this.commitsCount = data.commits_count;
this.divergedCommitsCount = data.diverged_commits_count;
this.pipeline = data.pipeline || {};
this.pipelineCoverageDelta = data.pipeline_coverage_delta;
+ this.buildsWithCoverage = data.builds_with_coverage;
this.mergePipeline = data.merge_pipeline || {};
this.deployments = this.deployments || data.deployments || [];
this.postMergeDeployments = this.postMergeDeployments || [];
@@ -60,9 +59,6 @@ export default class MergeRequestStore {
this.rebaseInProgress = data.rebase_in_progress;
this.mergeRequestDiffsPath = data.diffs_path;
this.approvalsWidgetType = data.approvals_widget_type;
- this.projectArchived = data.project_archived;
- this.branchMissing = data.branch_missing;
- this.hasConflicts = data.has_conflicts;
if (data.issues_links) {
const links = data.issues_links;
@@ -80,25 +76,18 @@ export default class MergeRequestStore {
this.setToAutoMergeBy = MergeRequestStore.formatUserObject(data.merge_user || {});
this.mergeUserId = data.merge_user_id;
this.currentUserId = gon.current_user_id;
- this.mergeError = data.merge_error;
this.sourceBranchRemoved = !data.source_branch_exists;
this.shouldRemoveSourceBranch = data.remove_source_branch || false;
- this.onlyAllowMergeIfPipelineSucceeds = data.only_allow_merge_if_pipeline_succeeds || false;
- this.autoMergeEnabled = Boolean(data.auto_merge_enabled);
this.autoMergeStrategy = data.auto_merge_strategy;
this.availableAutoMergeStrategies = data.available_auto_merge_strategies;
this.preferredAutoMergeStrategy = MergeRequestStore.getPreferredAutoMergeStrategy(
this.availableAutoMergeStrategies,
);
this.ffOnlyEnabled = data.ff_only_enabled;
- this.shouldBeRebased = Boolean(data.should_be_rebased);
this.isRemovingSourceBranch = this.isRemovingSourceBranch || false;
this.mergeRequestState = data.state;
this.isOpen = this.mergeRequestState === 'opened';
- this.hasMergeableDiscussionsState = data.mergeable_discussions_state === false;
- this.isSHAMismatch = this.sha !== data.diff_head_sha;
this.latestSHA = data.diff_head_sha;
- this.canBeMerged = data.can_be_merged || false;
this.isMergeAllowed = data.mergeable || false;
this.mergeOngoing = data.merge_ongoing;
this.allowCollaboration = data.allow_collaboration;
@@ -108,13 +97,13 @@ export default class MergeRequestStore {
// CI related
this.hasCI = data.has_ci;
this.ciStatus = data.ci_status;
- this.isPipelineFailed = this.ciStatus === 'failed' || this.ciStatus === 'canceled';
this.isPipelinePassing =
this.ciStatus === 'success' || this.ciStatus === 'success-with-warnings';
this.isPipelineSkipped = this.ciStatus === 'skipped';
this.pipelineDetailedStatus = pipelineStatus;
this.isPipelineActive = data.pipeline ? data.pipeline.active : false;
- this.isPipelineBlocked = pipelineStatus ? pipelineStatus.group === 'manual' : false;
+ this.isPipelineBlocked =
+ data.only_allow_merge_if_pipeline_succeeds && pipelineStatus?.group === 'manual';
this.ciStatusFaviconPath = pipelineStatus ? pipelineStatus.favicon : null;
this.terraformReportsPath = data.terraform_reports_path;
this.testResultsPath = data.test_reports_path;
@@ -133,11 +122,24 @@ export default class MergeRequestStore {
this.removeWIPPath = data.remove_wip_path;
this.createIssueToResolveDiscussionsPath = data.create_issue_to_resolve_discussions_path;
this.mergePath = data.merge_path;
- this.canMerge = Boolean(data.merge_path);
- this.mergeCommitPath = data.merge_commit_path;
+ this.mergeCommitPath = data.merged_commit_path;
this.canPushToSourceBranch = data.can_push_to_source_branch;
- if (data.work_in_progress !== undefined) {
+ if (!window.gon?.features?.mergeRequestWidgetGraphql) {
+ this.autoMergeEnabled = Boolean(data.auto_merge_enabled);
+ this.canBeMerged = data.can_be_merged || false;
+ this.canMerge = Boolean(data.merge_path);
+ this.commitsCount = data.commits_count;
+ this.branchMissing = data.branch_missing;
+ this.hasConflicts = data.has_conflicts;
+ this.hasMergeableDiscussionsState = data.mergeable_discussions_state === false;
+ this.isPipelineFailed = this.ciStatus === 'failed' || this.ciStatus === 'canceled';
+ this.mergeError = data.merge_error;
+ this.mergeStatus = data.merge_status;
+ this.onlyAllowMergeIfPipelineSucceeds = data.only_allow_merge_if_pipeline_succeeds || false;
+ this.projectArchived = data.project_archived;
+ this.isSHAMismatch = this.sha !== data.diff_head_sha;
+ this.shouldBeRebased = Boolean(data.should_be_rebased);
this.workInProgress = data.work_in_progress;
}
@@ -154,8 +156,27 @@ export default class MergeRequestStore {
this.setState();
}
- setGraphqlData(data) {
- this.workInProgress = data.workInProgress;
+ setGraphqlData(project) {
+ const { mergeRequest } = project;
+ const pipeline = mergeRequest.pipelines?.nodes?.[0];
+
+ this.projectArchived = project.archived;
+ this.onlyAllowMergeIfPipelineSucceeds = project.onlyAllowMergeIfPipelineSucceeds;
+
+ this.autoMergeEnabled = mergeRequest.autoMergeEnabled;
+ this.canBeMerged = mergeRequest.mergeStatus === 'can_be_merged';
+ this.canMerge = mergeRequest.userPermissions.canMerge;
+ this.ciStatus = pipeline?.status.toLowerCase();
+ this.commitsCount = mergeRequest.commitCount;
+ this.branchMissing = !mergeRequest.sourceBranchExists || !mergeRequest.targetBranchExists;
+ this.hasConflicts = mergeRequest.conflicts;
+ this.hasMergeableDiscussionsState = mergeRequest.mergeableDiscussionsState === false;
+ this.mergeError = mergeRequest.mergeError;
+ this.mergeStatus = mergeRequest.mergeStatus;
+ this.isPipelineFailed = this.ciStatus === 'failed' || this.ciStatus === 'canceled';
+ this.isSHAMismatch = this.sha !== mergeRequest.diffHeadSha;
+ this.shouldBeRebased = mergeRequest.shouldBeRebased;
+ this.workInProgress = mergeRequest.workInProgress;
this.setState();
}