From 3778e901cc1d201acc349a6bdb75c031d36f8814 Mon Sep 17 00:00:00 2001 From: "Ilia.Shulgin" Date: Thu, 5 Mar 2026 15:28:09 +0100 Subject: [PATCH] [vcs] Expose hidden API (IJPL-237833) (cherry picked from commit 872397382bc265e9b218e4049e80f1d12d834a01) IJ-CR-195692 GitOrigin-RevId: 380cf8f7cd454d2c7c4be632ebaa6d6f8c631c65 --- .../api-dump-experimental.txt | 11 +++++++ .../collaboration/ui/ExceptionUtil.kt | 2 +- plugins/git4idea/api-dump-experimental.txt | 32 +++++++++++++++++++ .../ui/ResolveConflictsLocallyCoordinates.kt | 4 +-- ...eConflictsLocallyDialogComponentFactory.kt | 2 +- .../ui/ResolveConflictsLocallyViewModel.kt | 4 +-- 6 files changed, 49 insertions(+), 6 deletions(-) diff --git a/platform/collaboration-tools/api-dump-experimental.txt b/platform/collaboration-tools/api-dump-experimental.txt index 94f4f328776f..df8598d15b6d 100644 --- a/platform/collaboration-tools/api-dump-experimental.txt +++ b/platform/collaboration-tools/api-dump-experimental.txt @@ -335,6 +335,17 @@ f:com.intellij.collaboration.api.json.JsonHttpApiHelperKt - f:create(kotlinx.coroutines.CoroutineScope,javax.swing.JComponent,kotlinx.coroutines.flow.Flow,kotlin.jvm.functions.Function2):javax.swing.JComponent - f:wrapTextComponent(kotlinx.coroutines.CoroutineScope,javax.swing.JComponent,kotlinx.coroutines.flow.Flow,kotlin.jvm.functions.Function0):javax.swing.JComponent - bs:wrapTextComponent$default(com.intellij.collaboration.ui.EditableComponentFactory,kotlinx.coroutines.CoroutineScope,javax.swing.JComponent,kotlinx.coroutines.flow.Flow,kotlin.jvm.functions.Function0,I,java.lang.Object):javax.swing.JComponent +*:com.intellij.collaboration.ui.Either +- *sf:Companion:com.intellij.collaboration.ui.Either$Companion +- asLeftOrNull():java.lang.Object +- asRightOrNull():java.lang.Object +- bimap(kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):com.intellij.collaboration.ui.Either +- fold(kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):java.lang.Object +- isLeft():Z +- isRight():Z +*f:com.intellij.collaboration.ui.Either$Companion +- f:left(java.lang.Object):com.intellij.collaboration.ui.Either +- f:right(java.lang.Object):com.intellij.collaboration.ui.Either *f:com.intellij.collaboration.ui.ExceptionUtil - sf:INSTANCE:com.intellij.collaboration.ui.ExceptionUtil - f:getPresentableMessage(java.lang.Throwable):java.lang.String diff --git a/platform/collaboration-tools/src/com/intellij/collaboration/ui/ExceptionUtil.kt b/platform/collaboration-tools/src/com/intellij/collaboration/ui/ExceptionUtil.kt index dd69d73f87b0..8a7c577093d2 100644 --- a/platform/collaboration-tools/src/com/intellij/collaboration/ui/ExceptionUtil.kt +++ b/platform/collaboration-tools/src/com/intellij/collaboration/ui/ExceptionUtil.kt @@ -32,7 +32,7 @@ object ExceptionUtil { * the result of a division. The result will then either be some `DivideByZeroException` * for instance, or a simple number. */ -@ApiStatus.Internal +@ApiStatus.Experimental sealed interface Either { fun asLeftOrNull(): A? = if (this is Left) value else null fun asRightOrNull(): B? = if (this is Right) value else null diff --git a/plugins/git4idea/api-dump-experimental.txt b/plugins/git4idea/api-dump-experimental.txt index e7ab8fc1f19d..9fe3b882a432 100644 --- a/plugins/git4idea/api-dump-experimental.txt +++ b/plugins/git4idea/api-dump-experimental.txt @@ -97,6 +97,38 @@ f:git4idea.push.GitPushNotificationCustomizerKt - isSilent():Z *f:git4idea.remote.hosting.http.SilentHostedGitHttpAuthDataProvider$Companion - f:getAccountsWithTokens(com.intellij.collaboration.auth.AccountManager,git4idea.remote.hosting.http.HostedGitAuthenticationFailureManager,java.lang.String,kotlin.coroutines.Continuation):java.lang.Object +*e:git4idea.remote.hosting.ui.BaseOrHead +- java.lang.Enum +- sf:Base:git4idea.remote.hosting.ui.BaseOrHead +- sf:Head:git4idea.remote.hosting.ui.BaseOrHead +- s:getEntries():kotlin.enums.EnumEntries +- f:getText():java.lang.String +- s:valueOf(java.lang.String):git4idea.remote.hosting.ui.BaseOrHead +- s:values():git4idea.remote.hosting.ui.BaseOrHead[] +*f:git4idea.remote.hosting.ui.ResolveConflictsLocallyCoordinates +- (git4idea.remote.hosting.HostedGitRepositoryRemote,java.lang.String,git4idea.remote.hosting.HostedGitRepositoryRemote,java.lang.String):V +- f:getBaseRefName():java.lang.String +- f:getBaseRemoteDescriptor():git4idea.remote.hosting.HostedGitRepositoryRemote +- f:getHeadRefName():java.lang.String +- f:getHeadRemoteDescriptor():git4idea.remote.hosting.HostedGitRepositoryRemote +*f:git4idea.remote.hosting.ui.ResolveConflictsLocallyDialogComponentFactory +- sf:INSTANCE:git4idea.remote.hosting.ui.ResolveConflictsLocallyDialogComponentFactory +- f:showBranchUpdateDialog(java.lang.String,java.lang.String):git4idea.remote.hosting.ui.ResolveConflictsMethod +*:git4idea.remote.hosting.ui.ResolveConflictsLocallyViewModel +- *sf:Companion:git4idea.remote.hosting.ui.ResolveConflictsLocallyViewModel$Companion +- a:getHasConflicts():kotlinx.coroutines.flow.StateFlow +- a:getRequestOrError():kotlinx.coroutines.flow.StateFlow +- a:isBusy():kotlinx.coroutines.flow.StateFlow +- a:performResolveConflicts(kotlin.jvm.functions.Function1):V +*f:git4idea.remote.hosting.ui.ResolveConflictsLocallyViewModel$Companion +- f:createIn(kotlinx.coroutines.CoroutineScope,com.intellij.openapi.project.Project,git4idea.repo.GitRepository,kotlinx.coroutines.flow.Flow,kotlinx.coroutines.flow.Flow,com.intellij.collaboration.ui.Either):git4idea.remote.hosting.ui.ResolveConflictsLocallyViewModel +*e:git4idea.remote.hosting.ui.ResolveConflictsMethod +- java.lang.Enum +- sf:MERGE:git4idea.remote.hosting.ui.ResolveConflictsMethod +- sf:REBASE:git4idea.remote.hosting.ui.ResolveConflictsMethod +- s:getEntries():kotlin.enums.EnumEntries +- s:valueOf(java.lang.String):git4idea.remote.hosting.ui.ResolveConflictsMethod +- s:values():git4idea.remote.hosting.ui.ResolveConflictsMethod[] *f:git4idea.repo.GitConfigurationCache - git4idea.repo.GitConfigurationCacheBase - *sf:Companion:git4idea.repo.GitConfigurationCache$Companion diff --git a/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyCoordinates.kt b/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyCoordinates.kt index 0b9fb2f81119..c37898ac7354 100644 --- a/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyCoordinates.kt +++ b/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyCoordinates.kt @@ -9,7 +9,7 @@ import org.jetbrains.annotations.Nls /** * Represents a request to resolve conflicts in a code review locally. */ -@ApiStatus.Internal +@ApiStatus.Experimental class ResolveConflictsLocallyCoordinates( val headRemoteDescriptor: HostedGitRepositoryRemote, val headRefName: String, @@ -17,7 +17,7 @@ class ResolveConflictsLocallyCoordinates( val baseRefName: String ) -@ApiStatus.Internal +@ApiStatus.Experimental enum class BaseOrHead(val text: @Nls String) { Base(CollaborationToolsBundle.message("review.details.resolve-conflicts.base")), Head(CollaborationToolsBundle.message("review.details.resolve-conflicts.head")); diff --git a/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyDialogComponentFactory.kt b/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyDialogComponentFactory.kt index 4cff88ae897d..b5ba4cab9c7e 100644 --- a/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyDialogComponentFactory.kt +++ b/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyDialogComponentFactory.kt @@ -7,7 +7,7 @@ import git4idea.i18n.GitBundle import org.jetbrains.annotations.ApiStatus import org.jetbrains.annotations.Nls -@ApiStatus.Internal +@ApiStatus.Experimental object ResolveConflictsLocallyDialogComponentFactory { private fun ResolveConflictsMethod.toMessage(): @Nls String = when (this) { ResolveConflictsMethod.REBASE -> GitBundle.message("rebasing.merge.commits.button.rebase") diff --git a/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyViewModel.kt b/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyViewModel.kt index 21924242f71e..bf96223ff983 100644 --- a/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyViewModel.kt +++ b/plugins/git4idea/src/git4idea/remote/hosting/ui/ResolveConflictsLocallyViewModel.kt @@ -25,13 +25,13 @@ import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.withContext import org.jetbrains.annotations.ApiStatus -@ApiStatus.Internal +@ApiStatus.Experimental enum class ResolveConflictsMethod { REBASE, MERGE; } -@ApiStatus.Internal +@ApiStatus.Experimental interface ResolveConflictsLocallyViewModel { /** * Whether there are conflicts that need to be resolved before merging.