/** Checks if given fork owner exists */ public FormValidation checkDepFork(@QueryParameter String value, @QueryParameter String name) throws IOException, ServletException { doFillForkItems(value, name); if (value.length() == 0) { return FormValidation.error(Messages.Fork_NoFork()); } // check if given fork owner is in fork list /*for (String fork : this.forkItems) { if (fork.equals(value)) { return (msg.length()==0) ? FormValidation.ok() : FormValidation.ok(msg); } }*/ // if fork owner was not in list try { // check if user exists try { UserService githubUserSrv = new UserService(this.githubClient); githubUserSrv.getUser(value); } catch (Exception ex) { return FormValidation.error(Messages.Fork_OwnerNotFound() + "\n" + ex.getMessage()); } // check if user has public repository with given name try { RepositoryService githubRepoSrv = new RepositoryService(this.githubClient); List<org.eclipse.egit.github.core.Repository> repos = githubRepoSrv.getRepositories(value); for (org.eclipse.egit.github.core.Repository repo : repos) { if (repo.getName().equals(name)) return FormValidation.ok(Messages.Fork_Found()); } } catch (Exception ex) { return FormValidation.error(Messages.Fork_GetReposFailed() + "\n" + ex.getMessage()); } return FormValidation.ok(); } catch (Exception ex) { return FormValidation.error(Messages.Fork_AuthFailed() + "\n" + ex.getMessage()); } }
@JavaScriptMethod public String checkFork(String fork, String repo) { doFillForkItems(fork, repo); if (fork.length() == 0) { return Messages.Fork_NoFork(); } // check if given fork owner is in fork list for (String f : this.forkItems) { if (f.equals(fork)) { return "__succeeded"; } } // if fork owner was not in list try { // check if user exists try { UserService githubUserSrv = new UserService(this.githubClient); githubUserSrv.getUser(fork); } catch (Exception ex) { return Messages.Fork_OwnerNotFound() + "\n" + ex.getMessage(); } // check if user has public repository with given name try { RepositoryService githubRepoSrv = new RepositoryService(this.githubClient); List<org.eclipse.egit.github.core.Repository> repos = githubRepoSrv.getRepositories(fork); for (org.eclipse.egit.github.core.Repository r : repos) { if (r.getName().equals(repo)) return Messages.Fork_Found() + "__succeeded"; } } catch (Exception ex) { return Messages.Fork_GetReposFailed() + "\n" + ex.getMessage(); } return "__succeeded"; } catch (Exception ex) { return Messages.Fork_AuthFailed() + "\n" + ex.getMessage(); } }
/** Fills combobox with repository names of organization */ public ComboBoxModel doFillNameItems(@QueryParameter String fork) { ComboBoxModel aux = new ComboBoxModel(); if (this.githubClient.getUser() == null) { setGithubConfig(); } if (fork.length() == 0) { return aux; } try { RepositoryService githubRepoSrv = new RepositoryService(githubClient); List<org.eclipse.egit.github.core.Repository> repos = githubRepoSrv.getRepositories(fork); for (org.eclipse.egit.github.core.Repository repo : repos) { if (!aux.contains(repo.getName())) aux.add(0, repo.getName()); } } catch (IOException ex) { // TODO: handle exception } Collections.sort(aux); return this.repoNameItems = aux; }
/** Checks if given repository exists */ public FormValidation checkDepName(@QueryParameter String value, @QueryParameter String fork) throws IOException, ServletException { doFillNameItems(fork); if (fork.length() == 0) { return FormValidation.error(Messages.Dependency_NoFork()); } if (value.length() == 0) { return FormValidation.warning(Messages.Repository_NoName()); } // check if given repository is in repo list for (String repoName : this.repoNameItems) { if (repoName.equals(value)) { return FormValidation.ok(); } } // if repository was not in list, for example extern repository try { RepositoryService githubRepoSrv = new RepositoryService(githubClient); org.eclipse.egit.github.core.Repository selectedRepo = githubRepoSrv.getRepository(fork, value); if (selectedRepo != null) { if (selectedRepo.isPrivate()) { return FormValidation.ok(Messages.Dependency_PrivateFound()); } return FormValidation.ok(); } } catch (IOException ex) { // TODO: handle exception } return FormValidation.warning( Messages.Dependency_NotFound(value, fork)); // error(Messages.Repository_NoFound()); }
@JavaScriptMethod public String checkName(String repo, String fork) { doFillNameItems(fork); if (fork.length() == 0) { return Messages.Repository_NoFork(); } if (repo.length() == 0) { return Messages.Repository_NoName(); } // check if given repository is in repo list for (String repoName : this.repoNameItems) { if (repoName.equals(repo)) { return ""; } } // if repository was not in list, for example extern repository try { RepositoryService githubRepoSrv = new RepositoryService(githubClient); org.eclipse.egit.github.core.Repository selectedRepo = githubRepoSrv.getRepository(fork, repo); if (selectedRepo != null) { if (selectedRepo.isPrivate()) { return Messages.Repository_PrivateFound() + "__succeeded"; } return "__succeeded"; } } catch (IOException ex) { // TODO: handle exception } return Messages.Repository_NotFound(repo, fork); }
/** Fill combobox with forks of repository */ public ComboBoxModel doFillForkItems(@QueryParameter String value, @QueryParameter String name) { ComboBoxModel aux = new ComboBoxModel(); if (this.githubClient.getUser() == null) { setGithubConfig(); } try { RepositoryService githubRepoSrv = new RepositoryService(this.githubClient); List<org.eclipse.egit.github.core.Repository> forks; try { // get parent repository if repository itself is forked org.eclipse.egit.github.core.Repository parent = githubRepoSrv.getRepository(value, name).getParent(); if (parent != null) { // get fork of parent repository forks = githubRepoSrv.getForks(parent); for (org.eclipse.egit.github.core.Repository fork : forks) { org.eclipse.egit.github.core.User user = fork.getOwner(); aux.add(user.getLogin()); } } if (aux.isEmpty()) { // add forks of repository forks = githubRepoSrv.getForks(new RepositoryId(value, name)); for (org.eclipse.egit.github.core.Repository fork : forks) { org.eclipse.egit.github.core.User user = fork.getOwner(); aux.add(user.getLogin()); } } aux.add(0, value); } catch (Exception ex) { } try { // try to use global githubLogin, find repository and add forks forks = githubRepoSrv.getForks(new RepositoryId(this.githubLogin, name)); for (org.eclipse.egit.github.core.Repository fork : forks) { org.eclipse.egit.github.core.User user = fork.getOwner(); if (!aux.contains(user.getLogin())) { aux.add(user.getLogin()); } } } catch (Exception ex) { } } catch (Exception ex) { // TODO: handle exception } Collections.sort(aux); return this.forkItems = aux; }