diff --git a/plugins/gitlab/gitlab-core/resources/graphql/fragment/13_9/mergeRequest.graphql b/plugins/gitlab/gitlab-core/resources/graphql/fragment/13_9/mergeRequest.graphql index 233921c5104c..cfe34edf2f20 100644 --- a/plugins/gitlab/gitlab-core/resources/graphql/fragment/13_9/mergeRequest.graphql +++ b/plugins/gitlab/gitlab-core/resources/graphql/fragment/13_9/mergeRequest.graphql @@ -37,7 +37,6 @@ fragment mergeRequest on MergeRequest { squash squashOnMerge - squashReadOnly defaultSquashCommitMessage defaultMergeCommitMessage shouldRemoveSourceBranch diff --git a/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_0/community/mergeRequest.graphql b/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_0/community/mergeRequest.graphql index b40d0833f7c0..43f7474fb94f 100644 --- a/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_0/community/mergeRequest.graphql +++ b/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_0/community/mergeRequest.graphql @@ -37,7 +37,6 @@ fragment mergeRequest on MergeRequest { squash squashOnMerge - squashReadOnly defaultSquashCommitMessage defaultMergeCommitMessage shouldRemoveSourceBranch diff --git a/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_0/mergeRequest.graphql b/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_0/mergeRequest.graphql index 8a0333dcf3e4..4f4dd39dc64c 100644 --- a/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_0/mergeRequest.graphql +++ b/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_0/mergeRequest.graphql @@ -37,7 +37,6 @@ fragment mergeRequest on MergeRequest { squash squashOnMerge - squashReadOnly defaultSquashCommitMessage defaultMergeCommitMessage shouldRemoveSourceBranch diff --git a/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_7/community/mergeRequest.graphql b/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_7/community/mergeRequest.graphql index 5e42ffee4aa3..69c24d32a7d6 100644 --- a/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_7/community/mergeRequest.graphql +++ b/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_7/community/mergeRequest.graphql @@ -38,7 +38,6 @@ fragment mergeRequest on MergeRequest { squash squashOnMerge - squashReadOnly defaultSquashCommitMessage defaultMergeCommitMessage shouldRemoveSourceBranch diff --git a/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_7/mergeRequest.graphql b/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_7/mergeRequest.graphql index eabf4d849711..0552cad7b85f 100644 --- a/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_7/mergeRequest.graphql +++ b/plugins/gitlab/gitlab-core/resources/graphql/fragment/14_7/mergeRequest.graphql @@ -38,7 +38,6 @@ fragment mergeRequest on MergeRequest { squash squashOnMerge - squashReadOnly defaultSquashCommitMessage defaultMergeCommitMessage shouldRemoveSourceBranch diff --git a/plugins/gitlab/gitlab-core/resources/graphql/fragment/17_10/community/mergeRequest.graphql b/plugins/gitlab/gitlab-core/resources/graphql/fragment/17_10/community/mergeRequest.graphql new file mode 100644 index 000000000000..373ba9fcd23e --- /dev/null +++ b/plugins/gitlab/gitlab-core/resources/graphql/fragment/17_10/community/mergeRequest.graphql @@ -0,0 +1,99 @@ +# Diff with EE: approved not included +fragment mergeRequest on MergeRequest { + id + iid + title + description + webUrl + createdAt + + targetBranch + sourceBranch + + labels(first: 100) { + pageInfo { + ...pageInfo + } + + nodes { + ...label + } + } + + diffRefs { + baseSha + startSha + headSha + } + + conflicts + headPipeline { + ...pipeline + } + mergeStatusEnum + mergeable + state + draft + + squash + squashOnMerge + defaultSquashCommitMessage + defaultMergeCommitMessage + shouldRemoveSourceBranch + forceRemoveSourceBranch + shouldBeRebased + rebaseInProgress + + targetProject { + ...project + } + sourceProject { + ...project + } + + author { + ...user + } + + approvedBy(first: 1000) { + pageInfo { + ...pageInfo + } + + nodes { + ...user + } + } + + assignees(first: 1000) { + pageInfo { + ...pageInfo + } + + nodes { + ...user + } + } + reviewers(first: 1000) { + pageInfo { + ...pageInfo + } + + nodes { + ...userReviewer + } + } + + commits(first: 1000) { + pageInfo { + ...pageInfo + } + + nodes { + ...glCommit + } + } + userPermissions { + ...mergeRequestPermissions + } +} \ No newline at end of file diff --git a/plugins/gitlab/gitlab-core/resources/graphql/fragment/17_10/mergeRequest.graphql b/plugins/gitlab/gitlab-core/resources/graphql/fragment/17_10/mergeRequest.graphql new file mode 100644 index 000000000000..0e1d251289ad --- /dev/null +++ b/plugins/gitlab/gitlab-core/resources/graphql/fragment/17_10/mergeRequest.graphql @@ -0,0 +1,99 @@ +fragment mergeRequest on MergeRequest { + id + iid + title + description + webUrl + createdAt + + targetBranch + sourceBranch + + labels(first: 100) { + pageInfo { + ...pageInfo + } + + nodes { + ...label + } + } + + diffRefs { + baseSha + startSha + headSha + } + + approvalsRequired # Not available in community + conflicts + headPipeline { + ...pipeline + } + mergeStatusEnum + mergeable + state + draft + + squash + squashOnMerge + defaultSquashCommitMessage + defaultMergeCommitMessage + shouldRemoveSourceBranch + forceRemoveSourceBranch + shouldBeRebased + rebaseInProgress + + targetProject { + ...project + } + sourceProject { + ...project + } + + author { + ...user + } + + approvedBy(first: 1000) { + pageInfo { + ...pageInfo + } + + nodes { + ...user + } + } + + assignees(first: 1000) { + pageInfo { + ...pageInfo + } + + nodes { + ...user + } + } + reviewers(first: 1000) { + pageInfo { + ...pageInfo + } + + nodes { + ...userReviewer + } + } + + commits(first: 1000) { + pageInfo { + ...pageInfo + } + + nodes { + ...glCommit + } + } + userPermissions { + ...mergeRequestPermissions + } +} \ No newline at end of file diff --git a/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/api/GitLabGQLQueryLoaders.kt b/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/api/GitLabGQLQueryLoaders.kt index 674521d13f0a..f68bbbd74a87 100644 --- a/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/api/GitLabGQLQueryLoaders.kt +++ b/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/api/GitLabGQLQueryLoaders.kt @@ -17,7 +17,8 @@ internal object GitLabGQLQueryLoaders { GitLabVersion(14, 7), GitLabVersion(15, 9), GitLabVersion(16, 1), - GitLabVersion(16, 8) + GitLabVersion(16, 8), + GitLabVersion(17, 10) ) val default: GraphQLQueryLoader by lazy { diff --git a/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/api/dto/GitLabMergeRequestDTO.kt b/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/api/dto/GitLabMergeRequestDTO.kt index 14eeb975d6ba..31f0154c9bc0 100644 --- a/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/api/dto/GitLabMergeRequestDTO.kt +++ b/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/api/dto/GitLabMergeRequestDTO.kt @@ -44,7 +44,7 @@ class GitLabMergeRequestDTO( val userPermissions: GitLabMergeRequestPermissionsDTO, val squash: Boolean, // property set on the MR val squashOnMerge: Boolean, // [squash] can be overridden by project settings, and this is the final value after override - val squashReadOnly: Boolean, // if [squash] can be changed for this MR + @SinceGitLab("17.10") val squashReadOnly: Boolean?, // if [squash] can be changed for this MR val defaultSquashCommitMessage: String?, val defaultMergeCommitMessage: String?, // set after the merge is triggered, ignore for our purposes diff --git a/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/data/GitLabMergeRequestFullDetails.kt b/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/data/GitLabMergeRequestFullDetails.kt index 1d9d9c6660e8..9a7ace8ec28b 100644 --- a/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/data/GitLabMergeRequestFullDetails.kt +++ b/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/data/GitLabMergeRequestFullDetails.kt @@ -46,7 +46,7 @@ data class GitLabMergeRequestFullDetails( val allowMergeOnSkippedPipeline: Boolean, val shouldSquash: Boolean, val shouldSquashWithProject: Boolean, // [shouldSquash] + project override - val shouldSquashReadOnly: Boolean, + val shouldSquashReadOnly: Boolean?, val defaultSquashCommitMessage: String?, val defaultMergeCommitMessage: String?, val removeSourceBranch: Boolean, diff --git a/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/ui/details/model/GitLabMergeRequestReviewFlowViewModel.kt b/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/ui/details/model/GitLabMergeRequestReviewFlowViewModel.kt index 60f55f54bf73..7a88bc84f64a 100644 --- a/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/ui/details/model/GitLabMergeRequestReviewFlowViewModel.kt +++ b/plugins/gitlab/gitlab-core/src/org/jetbrains/plugins/gitlab/mergerequest/ui/details/model/GitLabMergeRequestReviewFlowViewModel.kt @@ -205,7 +205,7 @@ internal class GitLabMergeRequestReviewFlowViewModelImpl( mergeCommitMessageDefault = details.defaultMergeCommitMessage, removeSourceBranch = details.removeSourceBranch, squashCommits = details.shouldSquashWithProject, - squashCommitsReadonly = details.shouldSquashReadOnly, + squashCommitsReadonly = details.shouldSquashReadOnly ?: projectData.squashMergeRequestBeforeMergeReadOnly, squashCommitMessageDefault = details.defaultSquashCommitMessage ) }.stateInNow(scope, null)