Added support for the extended stargazers API in Github V3 API

This commit is contained in:
noctarius
2016-04-14 07:09:05 +02:00
parent d30b0403ce
commit beae9fd6ec
2 changed files with 73 additions and 1 deletions

View File

@@ -935,12 +935,36 @@ public class GHRepository extends GHObject {
}
/**
* Lists all the users who have starred this repo.
* Lists all the users who have starred this repo based on the old version of the API. For
* additional information, like date when the repository was starred, see {@link #listExtendedStargazers()}
*/
public PagedIterable<GHUser> listStargazers() {
return listUsers("stargazers");
}
/**
* Lists all the users who have starred this repo based on new version of the API, having extended
* information like the time when the repository was starred. For compatibility with the old API
* see {@link #listStargazers()}
*/
public PagedIterable<GHStargazer> listExtendedStargazers() {
return new PagedIterable<GHStargazer>() {
@Override
public PagedIterator<GHStargazer> _iterator(int pageSize) {
Requester requester = root.retrieve();
requester.setHeader("Accept", "application/vnd.github.v3.star+json");
return new PagedIterator<GHStargazer>(requester.asIterator(getApiTailUrl("stargazers"), GHStargazer[].class, pageSize)) {
@Override
protected void wrapUp(GHStargazer[] page) {
for (GHStargazer c : page) {
c.wrapUp(GHRepository.this);
}
}
};
}
};
}
private PagedIterable<GHUser> listUsers(final String suffix) {
return new PagedIterable<GHUser>() {
public PagedIterator<GHUser> _iterator(int pageSize) {