Skip to content

Commit

Permalink
Fix for issue hub4j#376. Added issue events API.
Browse files Browse the repository at this point in the history
  • Loading branch information
martinvanzijl committed Aug 12, 2018
1 parent d61697a commit 71304b1
Show file tree
Hide file tree
Showing 2 changed files with 157 additions and 0 deletions.
72 changes: 72 additions & 0 deletions src/main/java/org/kohsuke/github/GHIssue.java
Original file line number Diff line number Diff line change
Expand Up @@ -367,4 +367,76 @@ public URL getUrl() {
return GitHub.parseURL(html_url);
}
}

public static class IssueEventInfo {
private GitHub root;

private int id;
private String node_id;
private String url;
private GHUser actor;
private String event;
private String commit_id;
private String commit_url;
private String created_at;

public int getId() {
return id;
}

public String getNodeId() {
return node_id;
}

public String getUrl() {
return url;
}

public GHUser getActor() {
return actor;
}

public String getEvent() {
return event;
}

public String getCommitId() {
return commit_id;
}

public String getCommitUrl() {
return commit_url;
}

public Date getCreatedAt() {
return GitHub.parseDate(created_at);
}

public IssueEventInfo wrapUp(GitHub root) {
this.root = root;
return this;
}

public GitHub getRoot() {
return root;
}
}

/**
* Lists events for this issue.
* See https://developer.github.com/v3/issues/events/
*/
public PagedIterable<IssueEventInfo> listEvents() throws IOException {
return new PagedIterable<IssueEventInfo>() {
public PagedIterator<IssueEventInfo> _iterator(int pageSize) {
return new PagedIterator<IssueEventInfo>(root.retrieve().asIterator(owner.getApiTailUrl(String.format("/issues/%s/events", number)), IssueEventInfo[].class, pageSize)) {
@Override
protected void wrapUp(IssueEventInfo[] page) {
for (IssueEventInfo c : page)
c.wrapUp(root);
}
};
}
};
}
}
85 changes: 85 additions & 0 deletions src/main/java/org/kohsuke/github/GHRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -1597,4 +1597,89 @@ String getApiTailUrl(String tail) {
if (tail.length()>0 && !tail.startsWith("/")) tail='/'+tail;
return "/repos/" + getOwnerName() + "/" + name +tail;
}

public static class IssueEventInfo {
private GitHub root;

private long id;
private String node_id;
private String url;
private GHUser actor;
private String event;
private String commit_id;
private String commit_url;
private String created_at;
private GHIssue issue;

public long getId() {
return id;
}

public String getNodeId() {
return node_id;
}

public String getUrl() {
return url;
}

public GHUser getActor() {
return actor;
}

public String getEvent() {
return event;
}

public String getCommitId() {
return commit_id;
}

public String getCommitUrl() {
return commit_url;
}

public Date getCreatedAt() {
return GitHub.parseDate(created_at);
}

public IssueEventInfo wrapUp(GitHub root) {
this.root = root;
return this;
}

public GitHub getRoot() {
return root;
}

public GHIssue getIssue() {
return issue;
}
}

/**
* Get all issue events for this repository.
* See https://developer.github.com/v3/issues/events/#list-events-for-a-repository
*/
public PagedIterable<IssueEventInfo> listIssueEvents() throws IOException {
return new PagedIterable<IssueEventInfo>() {
public PagedIterator<IssueEventInfo> _iterator(int pageSize) {
return new PagedIterator<IssueEventInfo>(root.retrieve().asIterator(getApiTailUrl("issues/events"), IssueEventInfo[].class, pageSize)) {
@Override
protected void wrapUp(IssueEventInfo[] page) {
for (IssueEventInfo c : page)
c.wrapUp(root);
}
};
}
};
}

/**
* Get a single issue event.
* See https://developer.github.com/v3/issues/events/#get-a-single-event
*/
public IssueEventInfo getIssueEvent(int id) throws IOException {
return root.retrieve().to(getApiTailUrl("issues/events/" + id), IssueEventInfo.class).wrapUp(root);
}
}

0 comments on commit 71304b1

Please sign in to comment.