* Get human-readable error message for HTTP status codes
(statusCode: number, apiError?: GitHubApiError)
| 302 | * Get human-readable error message for HTTP status codes |
| 303 | */ |
| 304 | private getErrorMessage(statusCode: number, apiError?: GitHubApiError): string { |
| 305 | const baseMessage = apiError?.message ?? `HTTP ${statusCode}`; |
| 306 | |
| 307 | switch (statusCode) { |
| 308 | case 401: |
| 309 | return `Authentication failed: ${baseMessage}. Check your GitHub token.`; |
| 310 | case 403: |
| 311 | if (baseMessage.toLowerCase().includes("rate limit")) { |
| 312 | return `GitHub API rate limit exceeded. ${this.hasToken ? "Try again later." : "Consider using a GitHub token."}`; |
| 313 | } |
| 314 | return `Access forbidden: ${baseMessage}. Check repository permissions.`; |
| 315 | case 404: |
| 316 | return `Not found: ${baseMessage}`; |
| 317 | case 422: |
| 318 | return `Invalid request: ${baseMessage}`; |
| 319 | default: |
| 320 | return `GitHub API error: ${baseMessage}`; |
| 321 | } |
| 322 | } |
| 323 | } |