{"record":{"id":"129da1554c3925e4","repo":"diegosouzapw/OmniRoute","slug":"github-api-res-status-url","errorCode":null,"errorMessage":"GitHub API ${res.status}: ${url}","messagePattern":"GitHub API (.+?): (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/lib/versionManager/releaseChecker.ts","lineNumber":16,"sourceCode":"const CACHE_TTL_MS = 5 * 60 * 1000;\nconst releasesCache = new Map<string, { data: any; ts: number }>();\n\nfunction getGitHubHeaders(): Record<string, string> {\n  const headers: Record<string, string> = { Accept: \"application/vnd.github+json\" };\n  const token = process.env.GITHUB_TOKEN;\n  if (token) headers.Authorization = `Bearer ${token}`;\n  return headers;\n}\n\nasync function fetchJSON(url: string): Promise<any> {\n  const res = await fetch(url, {\n    headers: getGitHubHeaders(),\n    signal: AbortSignal.timeout(15_000),\n  });\n  if (!res.ok) throw new Error(`GitHub API ${res.status}: ${url}`);\n  return res.json();\n}\n\nasync function cachedFetch(url: string): Promise<any> {\n  const cached = releasesCache.get(url);\n  if (cached && Date.now() - cached.ts < CACHE_TTL_MS) return cached.data;\n  const data = await fetchJSON(url);\n  releasesCache.set(url, { data, ts: Date.now() });\n  return data;\n}\n\ninterface ReleaseInfo {\n  tag: string;\n  version: string;\n  assets: { name: string; url: string; size: number }[];\n  publishedAt: string;\n  body: string;\n}","sourceCodeStart":1,"sourceCodeEnd":34,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/versionManager/releaseChecker.ts#L1-L34","documentation":"Error \"GitHub API ${res.status}: ${url}\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/versionManager/releaseChecker.ts:16 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","schemaVersion":2},"datasetVersion":"2026-08-25T21:54:21.419Z"}