Search in sources :

Example 6 with GithubRepo

use of org.jetbrains.plugins.github.api.data.GithubRepo in project intellij-community by JetBrains.

the class GithubShareAction method checkExistingRemote.

private static boolean checkExistingRemote(@NotNull final Project project, @NotNull final GithubAuthDataHolder authHolder, @NotNull String remote) {
    final GithubFullPath path = GithubUrlUtil.getUserAndRepositoryFromRemoteUrl(remote);
    if (path == null) {
        return GithubNotifications.showYesNoDialog(project, "Project Is Already on GitHub", "Can't connect to repository from configured remote. You could want to check .git config.\n" + "Do you want to proceed anyway?");
    }
    try {
        GithubRepo repo = GithubUtil.computeValueInModalIO(project, "Access to GitHub", indicator -> GithubUtil.runTask(project, authHolder, indicator, connection -> GithubApiUtil.getDetailedRepoInfo(connection, path.getUser(), path.getRepository())));
        int result = Messages.showDialog(project, "Successfully connected to " + repo.getHtmlUrl() + ".\n" + "Do you want to proceed anyway?", "Project Is Already on GitHub", new String[] { "Continue", "Open in Browser", Messages.CANCEL_BUTTON }, 2, Messages.getQuestionIcon());
        if (result == 0)
            return true;
        if (result == 1) {
            BrowserUtil.browse(repo.getHtmlUrl());
        }
        return false;
    } catch (GithubStatusCodeException e) {
        if (e.getStatusCode() == HttpStatus.SC_NOT_FOUND) {
            return GithubNotifications.showYesNoDialog(project, "Project Is Already on GitHub", "Can't connect to repository from configured remote. You could want to check .git config.\n" + "Do you want to proceed anyway?");
        }
        GithubNotifications.showErrorDialog(project, "Failed to Connect to GitHub", e);
        return false;
    } catch (IOException e) {
        GithubNotifications.showErrorDialog(project, "Failed to Connect to GitHub", e);
        return false;
    }
}
Also used : GithubStatusCodeException(org.jetbrains.plugins.github.exceptions.GithubStatusCodeException) git4idea.commands(git4idea.commands) GithubUrlUtil(org.jetbrains.plugins.github.util.GithubUrlUtil) VirtualFile(com.intellij.openapi.vfs.VirtualFile) HashSet(com.intellij.util.containers.HashSet) HttpStatus(org.apache.http.HttpStatus) GithubApiUtil(org.jetbrains.plugins.github.api.GithubApiUtil) GitUtil(git4idea.GitUtil) Task(com.intellij.openapi.progress.Task) GithubRepo(org.jetbrains.plugins.github.api.data.GithubRepo) Messages(com.intellij.openapi.ui.Messages) CommonDataKeys(com.intellij.openapi.actionSystem.CommonDataKeys) Logger(com.intellij.openapi.diagnostic.Logger) VcsException(com.intellij.openapi.vcs.VcsException) GitRepository(git4idea.repo.GitRepository) GithubUserDetailed(org.jetbrains.plugins.github.api.data.GithubUserDetailed) GithubAuthDataHolder(org.jetbrains.plugins.github.util.GithubAuthDataHolder) ChangeListManager(com.intellij.openapi.vcs.changes.ChangeListManager) GitBundle(git4idea.i18n.GitBundle) GithubFullPath(org.jetbrains.plugins.github.api.GithubFullPath) BrowserUtil(com.intellij.ide.BrowserUtil) Nullable(org.jetbrains.annotations.Nullable) ProgressIndicator(com.intellij.openapi.progress.ProgressIndicator) ServiceManager(com.intellij.openapi.components.ServiceManager) AnActionEvent(com.intellij.openapi.actionSystem.AnActionEvent) ApplicationManager(com.intellij.openapi.application.ApplicationManager) GitFileUtils(git4idea.util.GitFileUtils) DataProvider(com.intellij.openapi.actionSystem.DataProvider) NotNull(org.jetbrains.annotations.NotNull) Ref(com.intellij.openapi.util.Ref) java.util(java.util) SelectFilesDialog(com.intellij.openapi.vcs.changes.ui.SelectFilesDialog) ProjectLevelVcsManager(com.intellij.openapi.vcs.ProjectLevelVcsManager) GitRepositoryManager(git4idea.repo.GitRepositoryManager) NonNls(org.jetbrains.annotations.NonNls) GitUIUtil(git4idea.util.GitUIUtil) ContainerUtil(com.intellij.util.containers.ContainerUtil) GithubNotifications(org.jetbrains.plugins.github.util.GithubNotifications) GitInit(git4idea.actions.GitInit) Project(com.intellij.openapi.project.Project) VcsFileUtil(com.intellij.vcsUtil.VcsFileUtil) DialogManager(git4idea.DialogManager) GitLocalBranch(git4idea.GitLocalBranch) GithubShareDialog(org.jetbrains.plugins.github.ui.GithubShareDialog) Splitter(com.intellij.openapi.ui.Splitter) GitRemote(git4idea.repo.GitRemote) IOException(java.io.IOException) BasicAction(git4idea.actions.BasicAction) GithubUtil(org.jetbrains.plugins.github.util.GithubUtil) DumbAwareAction(com.intellij.openapi.project.DumbAwareAction) VcsDataKeys(com.intellij.openapi.vcs.VcsDataKeys) GithubIcons(icons.GithubIcons) CommitMessage(com.intellij.openapi.vcs.ui.CommitMessage) javax.swing(javax.swing) GithubStatusCodeException(org.jetbrains.plugins.github.exceptions.GithubStatusCodeException) GithubRepo(org.jetbrains.plugins.github.api.data.GithubRepo) IOException(java.io.IOException) GithubFullPath(org.jetbrains.plugins.github.api.GithubFullPath)

Aggregations

GithubRepo (org.jetbrains.plugins.github.api.data.GithubRepo)6 GithubApiUtil (org.jetbrains.plugins.github.api.GithubApiUtil)4 ContainerUtil (com.intellij.util.containers.ContainerUtil)3 IOException (java.io.IOException)3 ArrayList (java.util.ArrayList)3 List (java.util.List)3 Nullable (org.jetbrains.annotations.Nullable)3 GithubConnection (org.jetbrains.plugins.github.api.GithubConnection)3 ServiceManager (com.intellij.openapi.components.ServiceManager)2 Project (com.intellij.openapi.project.Project)2 VirtualFile (com.intellij.openapi.vfs.VirtualFile)2 HashSet (com.intellij.util.containers.HashSet)2 BasicAction (git4idea.actions.BasicAction)2 GithubUserDetailed (org.jetbrains.plugins.github.api.data.GithubUserDetailed)2 GithubTest (org.jetbrains.plugins.github.test.GithubTest)2 Assume.assumeNotNull (org.junit.Assume.assumeNotNull)2 BrowserUtil (com.intellij.ide.BrowserUtil)1 AnActionEvent (com.intellij.openapi.actionSystem.AnActionEvent)1 CommonDataKeys (com.intellij.openapi.actionSystem.CommonDataKeys)1 DataProvider (com.intellij.openapi.actionSystem.DataProvider)1