From bf1f85dcc8f5d49d4a6c89f85b8442ee9e0afd80 Mon Sep 17 00:00:00 2001 From: Vasil Hrytskevich Date: Sat, 22 Feb 2020 02:32:13 +0300 Subject: [PATCH] Added possibility to get only first page from project's pipelines --- src/main/java/org/gitlab/api/GitlabAPI.java | 12 ++++++++++++ .../org/gitlab/api/http/GitlabHTTPRequestor.java | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/main/java/org/gitlab/api/GitlabAPI.java b/src/main/java/org/gitlab/api/GitlabAPI.java index 4f2ebccb..12e69c22 100644 --- a/src/main/java/org/gitlab/api/GitlabAPI.java +++ b/src/main/java/org/gitlab/api/GitlabAPI.java @@ -1086,6 +1086,18 @@ public List getProjectPipelines(Integer projectId, PipelinesQuer return retrieve().getAll(tailUrl, GitlabPipeline[].class); } + /** + * Get the first page of project's pipelines in Gitlab. + * + * @param projectId the project id + * @return A list of project pipelines + */ + public List getFirstProjectPipelinePage(Integer projectId, PipelinesQuery pipelinesQuery) { + String tailUrl = GitlabProject.URL + "/" + sanitizeProjectId(projectId) + GitlabPipeline.URL + pipelinesQuery; + return retrieve().getFirstPage(tailUrl, GitlabPipeline[].class); + } + + /** * Gets a list of a project's jobs in Gitlab * diff --git a/src/main/java/org/gitlab/api/http/GitlabHTTPRequestor.java b/src/main/java/org/gitlab/api/http/GitlabHTTPRequestor.java index ebe80573..66a43aaa 100644 --- a/src/main/java/org/gitlab/api/http/GitlabHTTPRequestor.java +++ b/src/main/java/org/gitlab/api/http/GitlabHTTPRequestor.java @@ -173,6 +173,17 @@ public List getAll(final String tailUrl, final Class type) { return results; } + public List getFirstPage(final String tailUrl, final Class type) { + Iterator iterator = asIterator(tailUrl, type); + if (iterator.hasNext()) { + T[] requests = iterator.next(); + if (requests.length > 0) { + return Arrays.asList(requests); + } + } + return new ArrayList<>(); + } + public Iterator asIterator(final String tailApiUrl, final Class type) { method(GET); // Ensure we only use iterators for GET requests