Phase 1 deployment targets Vercel.
GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET configuredRegister a GitHub OAuth App at https://github.com/settings/developers:
http://localhost:3000http://localhost:3000/api/auth/callbackThen set the credentials in .env.local:
GITHUB_CLIENT_ID=your_client_id_here
GITHUB_CLIENT_SECRET=your_client_secret_here
https://your-app.vercel.app/api/auth/callbackarun-gupta/repo-pulse into VercelSettings -> Environment VariablesGITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET from your OAuth AppProduction (and optionally Preview)/demo route — data refresh pipelineThe /demo route ships pre-analyzed data so visitors can explore the app without authenticating. It is powered by JSON fixtures under fixtures/demo/** and refreshed weekly by a GitHub Action.
Roster (hard-coded in scripts/generate-demo-fixtures.ts):
simonw/llm-echo, 333fred/compiler-developer-sdk, ossf/security-insights-spec, fluxcd/helm-controller, projectcalico/calico, prometheus/prometheusossfTo change the roster, edit DEMO_REPOS / DEMO_ORG in that script and merge. The next run regenerates fixtures with the new set.
Pipeline — .github/workflows/refresh-demo-fixtures.yml:
workflow_dispatch.main and runs npm run demo:fixtures, which invokes the latest analyzer code against the roster.chore/demo-fixture-refresh) with only the updated JSON under fixtures/demo/**.main, which bundles:
The workflow only refreshes data. Frontend and analyzer changes deploy continuously via Vercel as their PRs merge — the weekly action does not ship code.
Required repo setting — Settings → Actions → General → Workflow permissions → “Allow GitHub Actions to create and approve pull requests” must be enabled, otherwise the PR-open step fails with GitHub Actions is not permitted to create or approve pull requests.
Operational tip — merge the refresh PR promptly. If it sits open while frontend/analyzer PRs continue to land, the deployed /demo data can drift out of sync with the deployed UI/logic.
The chat panel appears on every analysis view once a user is signed in. Without a server key it operates in “bring your own key” mode only.
To enable 5 free chats per GitHub login per day, add exactly one of the following to your Vercel environment variables (the first key found wins):
| Variable | Provider |
|---|---|
ANTHROPIC_API_KEY |
Anthropic Claude (default preference) |
OPENAI_API_KEY |
OpenAI GPT |
GOOGLE_API_KEY |
Google Gemini |
GROQ_API_KEY |
Groq |
Users who exceed the daily free limit — or who want to choose a different provider/model — can enter their own API key directly in the chat panel. That key is transmitted to the API route and forwarded to the provider; it is never logged or persisted.
See docs/ai-chat.md for full feature details.
GITHUB_TOKEN server-side environment variable is used — each user authenticates via their own GitHub OAuth session