Future<Collection<GitTag>> (@NotNull List<GitRepository> repositories, @NotNull Disposable disposable) { return ApplicationManager.getApplication().executeOnPooledThread(() -> BackgroundTaskUtil.runUnderDisposeAwareIndicator(disposable, () -> GitBranchUtil.collectCommon(repositories.stream().map(repository -> { try { List<String> tags = GitBranchUtil.getAllTags(repository.getProject(), repository.getRoot()); return ContainerUtil.map(tags, GitTag::new); } catch (VcsException e) { return Collections.emptyList(); } }))) ); }