GitHub PR Summarizer

Summarize the most-discussed open pull requests in any GitHub repository with a per-session connected account.

Scalekit setup (required) GitHub connector & user verification

Complete these steps in the Scalekit dashboard before using this app. Full order: Scalekit connector → GitHub OAuth callback → user verification → env vars → deploy.

  • GitHub connector: Go to AgentKit → Connectors, add a GitHub connector, and copy the connection name into GITHUB_CONNECTION_NAME. In GitHub's OAuth App settings, set Authorization callback URL to the Redirect URI shown on the Scalekit connection — not this app's URL.
  • User verification (most common setup issue): Go to AgentKit → Settings → User verification and choose a mode. Use Scalekit users only for development/testing. Use Custom user verification for production. If you skip this step, the app will stay stuck on "Waiting for GitHub authorization" after OAuth completes.
Environment variables Scalekit, OpenAI key scopes & Render

Configure these on Render (or in a local .env for development). See the README for least-privilege OpenAI key setup.

  • Scalekit credentials: Dashboard → Developers → API Credentials for SCALEKIT_ENVIRONMENT_URL, SCALEKIT_CLIENT_ID, and SCALEKIT_CLIENT_SECRET.
  • LLM setup: Set OPENAI_API_KEY and OPENAI_MODEL (default gpt-4.1-mini). Leave OPENAI_BASE_URL empty for OpenAI direct. For a proxy, set OPENAI_BASE_URL and use the proxy token as the key.
  • OpenAI key scope: Use a project key with Restricted permissions. This app only needs chat/model inference — leave Assistants, Fine-tuning, Files, etc. disabled.
  • Session security: Generate SESSION_SECRET with openssl rand -hex 32. On Render, render.yaml auto-generates this.
  • PUBLIC_BASE_URL (optional): Auto-detected from Render proxy headers. Only set for a custom domain or unusual reverse proxy.
Step 1

Connect GitHub

Connect your GitHub account once. The app links your session to your OAuth token — no user ID field.

Step 2

Summarize pull requests

Paste a GitHub repository URL or an owner/repo value. Public repositories work with any connected account. Private repositories require access.

Summary Output
Connect GitHub, paste a repository, then click Summarize PRs.