/** * Page pull request commit comments * * @param repository * @param id * @param start * @param size * @return iterator over pages of commit comments */ public PageIterator<CommitComment> pageComments( IRepositoryIdProvider repository, int id, int start, int size) { String repoId = getId(repository); StringBuilder uri = new StringBuilder(SEGMENT_REPOS); uri.append('/').append(repoId); uri.append(SEGMENT_PULLS); uri.append('/').append(id); uri.append(SEGMENT_COMMENTS); PagedRequest<CommitComment> request = createPagedRequest(start, size); request.setUri(uri); request.setType(new TypeToken<List<CommitComment>>() { }.getType()); return createPageIterator(request); }
/** * Get all commits associated with given pull request id * * @param repository * @param id * @return list of commits * @throws IOException */ public List<RepositoryCommit> getCommits(IRepositoryIdProvider repository, int id) throws IOException { final String repoId = getId(repository); StringBuilder uri = new StringBuilder(SEGMENT_REPOS); uri.append('/').append(repoId); uri.append(SEGMENT_PULLS); uri.append('/').append(id); uri.append(SEGMENT_COMMITS); PagedRequest<RepositoryCommit> request = createPagedRequest(); request.setUri(uri); request.setType(new TypeToken<List<RepositoryCommit>>() { }.getType()); return getAll(request); }
/** * Get all changed files associated with given pull request id * * @param repository * @param id * @return list of commit files * @throws IOException */ public List<CommitFile> getFiles(IRepositoryIdProvider repository, int id) throws IOException { final String repoId = getId(repository); StringBuilder uri = new StringBuilder(SEGMENT_REPOS); uri.append('/').append(repoId); uri.append(SEGMENT_PULLS); uri.append('/').append(id); uri.append(SEGMENT_FILES); PagedRequest<CommitFile> request = createPagedRequest(); request.setUri(uri); request.setType(new TypeToken<List<CommitFile>>() { }.getType()); return getAll(request); }
/** * Create paged request for fetching pull requests * * @param provider * @param state * @param start * @param size * @return paged request */ protected PagedRequest<PullRequest> createPullsRequest( IRepositoryIdProvider provider, String state, int start, int size) { final String id = getId(provider); StringBuilder uri = new StringBuilder(SEGMENT_REPOS); uri.append('/').append(id); uri.append(SEGMENT_PULLS); PagedRequest<PullRequest> request = createPagedRequest(start, size); request.setUri(uri); if (state != null) request.setParams(Collections.singletonMap( IssueService.FILTER_STATE, state)); request.setType(new TypeToken<List<PullRequest>>() { }.getType()); return request; }