f153f9b350
When GITHUB_APP_ID/INSTALLATION_ID are unset (post org suspension or
Gitea-canonical deployments without GitHub App), the fallback path in
GetInstallationToken was returning 500 Internal Server Error. This pollutes
platform logs with ~28×false-positive 500s/hour across all workspaces.
Return 501 Not Implemented with {"error":"GitHub integration not
configured","scm":"gitea"} when the "required" error fires — callers
can now distinguish "feature off" from "transient error" and stop polling.
Update TestGitHubToken_NoTokenProvider to assert the new 501 shape.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>