mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-11-13 15:32:53 +09:00
Connecting GitHub required hand-registering an OAuth app and pasting a client id + secret — friction, and an open-source panel can't ship a secret anyway. Now an admin sets it up in one click. - backend: build_github_app_manifest / complete_github_app_manifest — hand GitHub an app manifest, convert the returned code into credentials stored locally (client id/secret in settings; PEM + webhook secret encrypted). No shared secret in the repo or build. - connect flow: when an app slug exists, generate_github_authorize_url points at the app's install screen (grants repos + authorizes in one hop); repositories are listed per-installation since GitHub Apps don't use /user/repos. - get_github_config surfaces provider_kind/app_slug/app_name/install_url. - routes: GET/POST /source-connections/admin/github/app-manifest[/complete]. - frontend: Settings -> Connections leads with "Set up in one click" (auto-POSTs the manifest form to github.com); a new /connections/github-app/callback page finishes setup and chains into connect. Manual OAuth app moves under "Advanced". 7 proving tests (manifest shape, conversion+storage, install-url routing, app-mode repo listing); ratchet 2498->2505. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>