/** 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; }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.commit_file_view); setSupportActionBar((android.support.v7.widget.Toolbar) findViewById(R.id.toolbar)); repo = getSerializableExtra(EXTRA_REPOSITORY); commit = getStringExtra(EXTRA_HEAD); sha = getStringExtra(EXTRA_BASE); path = getStringExtra(EXTRA_PATH); loadingBar = finder.find(R.id.pb_loading); codeView = finder.find(R.id.wv_code); file = CommitUtils.getName(path); isMarkdownFile = MarkdownUtils.isMarkdown(file); editor = new SourceEditor(codeView); editor.setWrap(PreferenceUtils.getCodePreferences(this).getBoolean(WRAP, false)); ActionBar actionBar = getSupportActionBar(); int lastSlash = path.lastIndexOf('/'); if (lastSlash != -1) actionBar.setTitle(path.substring(lastSlash + 1)); else actionBar.setTitle(path); actionBar.setSubtitle(getString(R.string.commit_prefix) + CommitUtils.abbreviate(commit)); avatars.bind(actionBar, repo.getOwner()); loadContent(); }
private Map<Repository, List<RepositoryBranch>> getHeadRepositories( GitHubRepository repository, List<RepositoryBranch> baseBranches) { Map<Repository, List<RepositoryBranch>> myRepositories = new HashMap<>(); GitHubCache cache = GitHubCache.create(repository); final User mySelf = cache.getMySelf(); String repositoryAuthor = repository.getRepositoryAuthor(); if (repositoryAuthor.equals(mySelf.getLogin())) { myRepositories.put(repository.getRepository(), baseBranches); } else { if (repository.isCollaborator()) { myRepositories.put(repository.getRepository(), baseBranches); } List<Repository> forks = cache.getForks(); Repository myRepository = null; for (Repository fork : forks) { User owner = fork.getOwner(); if (owner.getLogin().equals(mySelf.getLogin())) { myRepository = fork; break; } } if (myRepository == null) { return Collections.emptyMap(); } // get my branches GitHubClient client = repository.createGitHubClient(); List<RepositoryBranch> myRepositoryBranches = getMyRepositoryBranches(client, myRepository); myRepositories.put(myRepository, myRepositoryBranches); } return myRepositories; }
@Override protected boolean viewUser(User user) { if (repo.getOwner().getId() != user.getId()) { startActivity(UserViewActivity.createIntent(user)); return true; } return false; }
@Override protected Loader<LoaderResult<Map<String, String>>> onCreateLoader() { return new GitModuleParserLoader( getActivity(), mRepository.getOwner().getLogin(), mRepository.getName(), ".gitmodules", mSelectedRef); }
/** * Create pull request task repository * * @param repo * @param username * @param password * @return task repository */ public static TaskRepository createTaskRepository( Repository repo, String username, String password) { String url = PullRequestConnector.appendPulls( GitHub.createGitHubUrl(repo.getOwner().getLogin(), repo.getName())); TaskRepository repository = new TaskRepository(KIND, url); repository.setProperty(IRepositoryConstants.PROPERTY_LABEL, getRepositoryLabel(repo)); if (username != null && password != null) repository.setCredentials( AuthenticationType.REPOSITORY, new AuthenticationCredentials(username, password), true); repository.setProperty( IRepositoryConstants.PROPERTY_CATEGORY, IRepositoryConstants.CATEGORY_REVIEW); return repository; }
/** Test fork event that has an incomplete forkee in the payload */ public void testIncompleteRepositoryFork() { RepositoryEventMatcher matcher = new RepositoryEventMatcher(); Event event = new Event(); event.setType(Event.TYPE_FORK); ForkPayload payload = new ForkPayload(); event.setPayload(payload); assertNull(matcher.getRepository(event)); Repository repository = new Repository(); payload.setForkee(repository); assertNull(matcher.getRepository(event)); repository.setName("repo"); assertNull(matcher.getRepository(event)); repository.setOwner(new User()); assertNull(matcher.getRepository(event)); repository.getOwner().setLogin("owner"); assertEquals(repository, matcher.getRepository(event)); }
/** * Show informational dialog for when a pull request cannot be resolved to a Git repository. * * @param request must be non-null */ public static void showNoRepositoryDialog(PullRequest request) { Repository remoteRepo = request.getBase().getRepo(); String id = remoteRepo.getOwner().getLogin() + '/' + remoteRepo.getName(); final String message = MessageFormat.format(Messages.PullRequestConnectorUi_MessageRepositoryNotFound, id); PlatformUI.getWorkbench() .getDisplay() .syncExec( new Runnable() { public void run() { MessageDialog.openInformation( PlatformUI.getWorkbench().getDisplay().getActiveShell(), Messages.PullRequestConnectorUi_TitleRepositoryNotFound, message); } }); }
private void compare() { Repository headRepo = panel.getSelectedHeadRepository(); final User owner = headRepo.getOwner(); BaseProgressUtils.runOffEventDispatchThread( new Runnable() { @Override public void run() { try { compare = repository.compare( panel.getSelectedBaseBranch().getName(), owner.getLogin() + ":" + panel.getSelectedHeadBranch().getName()); } catch (IOException ex) { errorMessage = ex.getMessage(); } } }, "Comparing...", new AtomicBoolean(), false); // NOI18N }
@Override public void onTreeSelected(RepositoryContents content) { String path = content.getPath(); if (RepositoryContents.TYPE_DIR.equals(content.getType())) { mDirStack.push(path); updateBreadcrumbs(); addFragmentForTopOfStack(); } else if (mGitModuleMap != null && mGitModuleMap.get(path) != null) { String[] userRepo = mGitModuleMap.get(path).split("/"); startActivity( IntentUtils.getRepoActivityIntent(getActivity(), userRepo[0], userRepo[1], null)); } else { startActivity( IntentUtils.getFileViewerActivityIntent( getActivity(), mRepository.getOwner().getLogin(), mRepository.getName(), getCurrentRef(), content.getPath())); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); User owner = repository.getOwner(); ActionBar actionBar = getSupportActionBar(); actionBar.setTitle(repository.getName()); actionBar.setSubtitle(owner.getLogin()); actionBar.setDisplayHomeAsUpEnabled(true); if (owner.getAvatarUrl() != null && RepositoryUtils.isComplete(repository)) configurePager(); else { avatars.bind(getSupportActionBar(), owner); ViewUtils.setGone(loadingBar, false); setGone(true); new RefreshRepositoryTask(this, repository) { @Override protected void onSuccess(Repository fullRepository) throws Exception { super.onSuccess(fullRepository); repository = fullRepository; configurePager(); } @Override protected void onException(Exception e) throws RuntimeException { super.onException(e); ToastUtils.show(RepositoryViewActivity.this, string.error_repo_load); ViewUtils.setGone(loadingBar, true); } }.execute(); } }
private void configurePager() { avatars.bind(getSupportActionBar(), repository.getOwner()); configureTabPager(); ViewUtils.setGone(loadingBar, true); setGone(false); }