/** * GitHub Releases schema * * @see https://docs.github.com/en/rest/releases/releases */ interface GitHubRelease { assets: GitHubAsset[]; author: GitHubUser; body: string; created_at: string; id: number; draft: boolean; prelease: boolean; name: string; published_at: string; tag_name: string; tarball_url: string; target_commitish: string; html_url: string; upload_url: string; url: string; zipball_url: string; } interface GitHubAsset { id: number; } interface GitHubUser { id: number; login: string; } /** * Changelog generator */ declare type Generator = (release: GitHubRelease) => Promise; /** * Github releases fetcher */ declare type Fetcher = (tag: string) => Promise; /** * Fetcher options */ interface FetcherOptions { /** * GitHub info, format: `owner/repo` */ github?: string; /** * GitHub Token */ token?: string; } interface Plugin { fetcher?: Fetcher; generator?: Generator; } export { Fetcher, FetcherOptions, Generator, GitHubAsset, GitHubRelease, GitHubUser, Plugin };