mirror of
https://github.com/jlengrand/github-api.git
synced 2026-03-23 00:11:24 +00:00
Fix GHRepository#listWorkflows() and add a test
This commit is contained in:
53
src/main/java/org/kohsuke/github/GHWorkflowsIterable.java
Normal file
53
src/main/java/org/kohsuke/github/GHWorkflowsIterable.java
Normal file
@@ -0,0 +1,53 @@
|
||||
package org.kohsuke.github;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.util.Iterator;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
/**
|
||||
* Iterable for workflows listing.
|
||||
*/
|
||||
class GHWorkflowsIterable extends PagedIterable<GHWorkflow> {
|
||||
private final transient GHRepository owner;
|
||||
|
||||
private GHWorkflowsPage result;
|
||||
|
||||
public GHWorkflowsIterable(GHRepository owner) {
|
||||
this.owner = owner;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public PagedIterator<GHWorkflow> _iterator(int pageSize) {
|
||||
try {
|
||||
GitHubRequest request = owner.getRoot()
|
||||
.createRequest()
|
||||
.withUrlPath(owner.getApiTailUrl("actions/workflows"))
|
||||
.build();
|
||||
|
||||
return new PagedIterator<>(
|
||||
adapt(GitHubPageIterator
|
||||
.create(owner.getRoot().getClient(), GHWorkflowsPage.class, request, pageSize)),
|
||||
null);
|
||||
} catch (MalformedURLException e) {
|
||||
throw new GHException("Malformed URL", e);
|
||||
}
|
||||
}
|
||||
|
||||
protected Iterator<GHWorkflow[]> adapt(final Iterator<GHWorkflowsPage> base) {
|
||||
return new Iterator<GHWorkflow[]>() {
|
||||
public boolean hasNext() {
|
||||
return base.hasNext();
|
||||
}
|
||||
|
||||
public GHWorkflow[] next() {
|
||||
GHWorkflowsPage v = base.next();
|
||||
if (result == null) {
|
||||
result = v;
|
||||
}
|
||||
return v.getWorkflows(owner);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user