in org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/RepositoryImportWizard.java [99:161]
public boolean performFinish() {
final SearchRepository[] repositories = repositorySearchWizardPage
.getRepositories();
String name = MessageFormat.format(
Messages.RepositoryImportWizard_CloningRepositories,
Integer.valueOf(repositories.length));
Job job = new Job(name) {
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
SubMonitor progress = SubMonitor.convert(monitor, name,
repositories.length * 3);
GitHubClient client = GitHub
.configureClient(new GitHubClient());
RepositoryService service = new RepositoryService(client);
for (SearchRepository repo : repositories) {
try {
final String id = repo.getId();
progress.subTask(MessageFormat.format(
Messages.RepositoryImportWizard_CreatingOperation,
id));
CloneOperation op = createCloneOperation(repo,
service);
progress.worked(1);
monitor.setTaskName(MessageFormat.format(
Messages.RepositoryImportWizard_Cloning,
id));
op.run(progress.newChild(1));
monitor.setTaskName(MessageFormat.format(
Messages.RepositoryImportWizard_Registering,
id));
RepositoryUtil.INSTANCE
.addConfiguredRepository(op.getGitDir());
progress.worked(1);
} catch (InvocationTargetException e) {
GitHubUi.logError(e);
} catch (InterruptedException e) {
GitHubUi.logError(e);
} catch (IOException e) {
GitHubUi.logError(GitHubException.wrap(e));
} catch (URISyntaxException e) {
GitHubUi.logError(e);
}
}
return Status.OK_STATUS;
} finally {
if (monitor != null) {
monitor.done();
}
}
}
};
IWorkbenchSiteProgressService progress = PlatformUI
.getWorkbench().getService(IWorkbenchSiteProgressService.class);
if (progress != null)
progress.schedule(job);
else
job.schedule();
return true;
}