/** * Page issues for currently authenticated user * * @param filterData * @param size * @return iterator over pages of issues */ public PageIterator<RepositoryIssue> pageIssues( Map<String, String> filterData, int size) { return pageIssues(filterData, PAGE_FIRST, size); }
/** * Page issues for currently authenticated user * * @param filterData * @return iterator over pages of issues */ public PageIterator<RepositoryIssue> pageIssues( Map<String, String> filterData) { return pageIssues(filterData, PAGE_SIZE); }
/** * Get page iterator over issues query * * @param repository * @param filterData * @param size * @return iterator */ public PageIterator<Issue> pageIssues(IRepositoryIdProvider repository, Map<String, String> filterData, int size) { return pageIssues(repository, filterData, PAGE_FIRST, size); }
/** * Page issues for currently authenticated user * * @return iterator over pages of issues */ public PageIterator<RepositoryIssue> pageIssues() { return pageIssues((Map<String, String>) null); }
/** * Get page iterator over issues query * * @param user * @param repository * @return iterator over issue pages */ public PageIterator<Issue> pageIssues(String user, String repository) { return pageIssues(user, repository, null); }
/** * Get page iterator over issues query * * @param repository * @return iterator over issue pages */ public PageIterator<Issue> pageIssues(IRepositoryIdProvider repository) { return pageIssues(repository, null); }
/** * Get page iterator over issues query * * @param user * @param repository * @param filterData * @return iterator */ public PageIterator<Issue> pageIssues(String user, String repository, Map<String, String> filterData) { return pageIssues(user, repository, filterData, PAGE_SIZE); }
/** * Get page iterator over issues query * * @param repository * @param filterData * @return iterator */ public PageIterator<Issue> pageIssues(IRepositoryIdProvider repository, Map<String, String> filterData) { return pageIssues(repository, filterData, PAGE_SIZE); }
/** * Get page iterator over issues query * * @param user * @param repository * @param filterData * @param size * @return iterator */ public PageIterator<Issue> pageIssues(String user, String repository, Map<String, String> filterData, int size) { return pageIssues(user, repository, filterData, PAGE_FIRST, size); }
/** * Get issues for currently authenticated user * * @param filterData * @return non-null but possibly empty list of issues * @throws IOException */ public List<RepositoryIssue> getIssues(Map<String, String> filterData) throws IOException { return getAll(pageIssues(filterData)); }
/** * Get a list of {@link Issue} objects that match the specified filter data * * @param repository * @param filterData * @return list of issues * @throws IOException */ public List<Issue> getIssues(IRepositoryIdProvider repository, Map<String, String> filterData) throws IOException { return getAll(pageIssues(repository, filterData)); }
/** * Get a list of {@link Issue} objects that match the specified filter data * * @param user * @param repository * @param filterData * @return list of issues * @throws IOException */ public List<Issue> getIssues(String user, String repository, Map<String, String> filterData) throws IOException { return getAll(pageIssues(user, repository, filterData)); }
/** * Collects all issues on the repo and finds the first duplicate that has the same title. For this to work, the title * contains the hash of the stack trace. * * @param uniqueTitle Title of the newly created issue. Since for auto-reported issues the title is always the same, * it includes the hash of the stack trace. The title is used so that I don't have to match * something in the whole body of the issue. * @param service Issue-service of the GitHub lib that lets you access all issues * @param repo The repository that should be used * @return The duplicate if one is found or null * @throws IOException Problems when connecting to GitHub */ @Nullable private static Issue findFirstDuplicate(String uniqueTitle, final IssueService service, RepositoryId repo) throws IOException { Map<String, String> searchParameters = new HashMap<>(2); searchParameters.put(IssueService.FILTER_STATE, IssueService.STATE_OPEN); final PageIterator<Issue> pages = service.pageIssues(repo, searchParameters); for (Collection<Issue> page : pages) { for (Issue issue : page) { if (issue.getTitle().equals(uniqueTitle)) { return issue; } } } return null; }