in org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/RepositorySelectionWizardPage.java [406:476]
public void setVisible(boolean visible) {
super.setVisible(visible);
if (!visible) {
return;
}
// For gists a user name is needed.
addGistRepoButton.setVisible(user != null && !user.isEmpty()
&& TasksUi.getRepositoryManager()
.getRepositories(GistConnector.KIND).isEmpty());
try {
getContainer().run(true, true, new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
GitHubClient client = GitHub
.configureClient(new GitHubClient());
if (isToken) {
client.setOAuth2Token(password);
} else {
client.setCredentials(user, password);
}
RepositoryService service = new RepositoryService(client);
OrganizationService orgs = new OrganizationService(client);
repoCount = 0;
List<Object> repos = new ArrayList<>();
List<String> existing = new ArrayList<>();
for (TaskRepository repo : TasksUi.getRepositoryManager()
.getRepositories(GitHub.CONNECTOR_KIND)) {
String id = GitHub.getRepository(
repo.getRepositoryUrl()).generateId();
if (id != null)
existing.add(id);
}
try {
monitor.beginTask("", 2); //$NON-NLS-1$
monitor.setTaskName(Messages.RepositorySelectionWizardPage_TaskFetchingRepositories);
List<Repository> userRepos = service.getRepositories();
removeExisting(userRepos, existing);
repoCount += userRepos.size();
for (Repository repo : userRepos)
repos.add(new RepositoryAdapter(repo));
monitor.worked(1);
monitor.setTaskName(Messages.RepositorySelectionWizardPage_TaskFetchingOrganizationRepositories);
for (User org : orgs.getOrganizations()) {
List<Repository> orgRepos = service
.getOrgRepositories(org.getLogin());
removeExisting(orgRepos, existing);
repoCount += orgRepos.size();
repos.add(new OrganizationAdapter(org, orgRepos));
}
updateInput(repos);
} catch (IOException e) {
throw new InvocationTargetException(GitHubException
.wrap(e));
}
}
});
setErrorMessage(null);
} catch (InvocationTargetException e) {
updateInput(Collections.emptyList());
Throwable cause = e.getCause();
if (cause == null)
cause = e;
setErrorMessage(MessageFormat.format(
Messages.RepositorySelectionWizardPage_ErrorLoading,
cause.getLocalizedMessage()));
} catch (InterruptedException ignored) {
// Ignored
}
}