void (@NotNull Project project, @NotNull GitPushOperation pushOperation, @NotNull Map<String, VcsPushOptionValue> customParams) { GitPushResult pushResult = pushOperation.execute(); GitPushListener pushListener = project.getMessageBus().syncPublisher(GitPushListener.getTOPIC()); for (Map.Entry<GitRepository, GitPushRepoResult> entry : pushResult.getResults().entrySet()) { pushListener.onCompleted(entry.getKey(), entry.getValue(), customParams); } Map<GitRepository, HashRange> updatedRanges = pushResult.getUpdatedRanges(); GitUpdateInfoAsLog.NotificationData notificationData = !updatedRanges.isEmpty() ? new GitUpdateInfoAsLog(project, updatedRanges).calculateDataAndCreateLogTab() : null; ApplicationManager.getApplication().invokeLater(() -> { boolean multiRepoProject = GitUtil.getRepositoryManager(project).moreThanOneRoot(); GitPushResultNotification.create(project, pushResult, pushOperation, multiRepoProject, notificationData, customParams) .notify(project); }); }