@versatil/sdlc-framework
Version:
🚀 AI-Native SDLC framework with 11-MCP ecosystem, RAG memory, OPERA orchestration, and 6 specialized agents achieving ZERO CONTEXT LOSS. Features complete CI/CD pipeline with 7 GitHub workflows (MCP testing, security scanning, performance benchmarking),
88 lines (87 loc) • 2.26 kB
TypeScript
/**
* VERSATIL SDLC Framework - GitHub Release Checker
* Fetch and parse GitHub releases for framework updates
*/
export interface ReleaseAsset {
name: string;
browser_download_url: string;
size: number;
content_type: string;
}
export interface ReleaseInfo {
version: string;
tagName?: string;
publishedAt: string;
changelog: string;
releaseNotes: string;
downloadUrl: string;
assets?: ReleaseAsset[];
prerelease: boolean;
draft?: boolean;
}
export interface UpdateCheckResult {
hasUpdate: boolean;
currentVersion: string;
latestVersion: string;
releaseInfo?: ReleaseInfo;
updateType?: 'major' | 'minor' | 'patch';
}
export declare class GitHubReleaseError extends Error {
constructor(message: string);
}
export declare class GitHubReleaseChecker {
private readonly repoOwner;
private readonly repoName;
private readonly apiBase;
private cache;
private readonly cacheTTL;
constructor(repoOwner?: string, repoName?: string);
/**
* Get latest release from GitHub
*/
getLatestRelease(includePrerelease?: boolean): Promise<ReleaseInfo>;
/**
* Get latest stable (non-prerelease) release
*/
private getLatestStableRelease;
/**
* Parse GitHub release response
*/
private parseRelease;
/**
* Check if update is available
*/
checkForUpdate(currentVersion: string, includePrerelease?: boolean): Promise<UpdateCheckResult>;
/**
* Get all releases
*/
getAllReleases(limit?: number): Promise<ReleaseInfo[]>;
/**
* Get specific release by tag
*/
getReleaseByTag(tag: string): Promise<ReleaseInfo>;
/**
* Get release by version
*/
getReleaseByVersion(version: string): Promise<ReleaseInfo | null>;
/**
* Get releases between two versions
*/
getReleasesBetween(fromVersion: string, toVersion: string): Promise<ReleaseInfo[]>;
/**
* Clear cache
*/
clearCache(): void;
/**
* Get from cache if not expired
*/
private getFromCache;
/**
* Set cache
*/
private setCache;
}
/**
* Default instance for convenience
*/
export declare const defaultReleaseChecker: GitHubReleaseChecker;