signalk-server
Version:
An implementation of a [Signal K](http://signalk.org) server for boats.
29 lines • 1.38 kB
TypeScript
export interface GithubReleaseEntry {
tag: string;
url: string;
date?: string;
bodyMarkdown: string;
}
export declare function fetchReleasesFeed(owner: string, repo: string): Promise<string | undefined>;
export declare function parseReleasesFeed(xml: string): Promise<GithubReleaseEntry[]>;
export declare function renderReleasesAsChangelog(entries: GithubReleaseEntry[]): string;
export interface RepoSlug {
owner: string;
repo: string;
}
export declare function parseGithubSlug(url: string | undefined): RepoSlug | undefined;
/**
* Fetch and render a changelog from GitHub Releases for the given repo.
* Returns Markdown when at least one real release was found and parsed,
* otherwise undefined.
*
* Reads the public releases.atom feed rather than the /releases REST API on
* purpose: the feed is served off github.com and does not draw down the 60/hr
* unauthenticated REST budget. That budget is shared per source IP, so new
* users and boats on Starlink (which recycles IPs aggressively) could exhaust
* it before the App Store renders once. The cost is that the feed can't
* distinguish a published Release from a bare tag, so isPublishedRelease
* filters the placeholders out below.
*/
export declare function fetchReleasesMarkdown(owner: string, repo: string): Promise<string | undefined>;
//# sourceMappingURL=github-releases.d.ts.map