in src/common/github-service.ts [75:103]
public async getUpcomingReleaseVersions(): Promise<string[]> {
const response = await this.octokit.repos.listReleases({
owner: GITHUB_OWNER,
repo: this.repoName,
per_page: 10,
});
const tags = response.data
.filter((release) => !release.prerelease)
.map((release) => semver.parse(release.tag_name))
.filter((tag): tag is SemVer => !!tag);
if (!tags.length) {
return [];
}
const latestVersion = tags.sort((v1, v2) => v2.compare(v1))[0];
const previousPatch = tags.find(
(version) =>
version.major === latestVersion.major && version.minor === latestVersion.minor - 1
);
return [
...[previousPatch ? [previousPatch.inc('patch')] : []],
latestVersion.inc('patch').format(),
latestVersion.inc('minor').format(),
latestVersion.inc('major').format(),
].map((v) => `v${v}`);
}