const GitHubApi = require("github");
const Rx = require("rx");
const github = new GitHubApi();
const getCommitsAsync = (param) => github.repos.getCommits({
owner: 'amowu',
repo: 'test-semantic-release',
...param
});
const checkNextPage = (response) =>
github.hasNextPage(response)
? Rx.Observable.fromPromise(github.getNextPage(response))
: Rx.Observable.empty();
const concatAllCommits = (acc, curr) => acc.concat(curr.data);
const getAllCommits$ = Rx.Observable
.fromPromise(getCommitsAsync({ per_page: 100 }))
.expand(checkNextPage)
.reduce(concatAllCommits, []);
// getAllCommits$.subscribe(
// (commits) => console.log(commits)
// );
const commits = await getAllCommits$.toPromise();