Commit 598393f
[ENG-3233] Phase 1: GitHub App Installation Requests — Schema, Config, and Plumbing (#4312)
<!-- CURSOR_AGENT_PR_BODY_BEGIN -->
## Summary
Phase 1 of the [GitHub App Installation
Requests](https://linear.app/overmind/issue/ENG-3233) project. Adds the
data foundation for tracking pending GitHub App installation requests
from non-admin org members.
### Changes
**Database (migration + schema)**
- Add 5 nullable columns to `accounts`: `github_requested_org_id`,
`github_requested_org_name`, `github_requested_at`,
`github_requested_by`, `github_requested_user_id`
- All columns have `COMMENT ON COLUMN` documentation
**SQL queries (SQLC)**
- `SetAccountGithubPendingRequest` — store pending request fields
- `ClearAccountGithubPendingRequest` — null out all pending request
fields
- `GetAccountByGithubRequestedOrgID` — lookup by org ID (for webhook
matching in Phase 3)
- `GetAccountGithubPendingRequest` — lookup by account name
**Proto (SDP)**
- Add `optional string requestedOrgName`, `optional
google.protobuf.Timestamp requestedAt`, `optional string requestedBy` to
`GithubAppInformation` (field numbers 10-12)
**Config plumbing**
- Add `GithubClientID`, `GithubClientSecret`, `GithubWebhookSecret` to
`ServerConfig`
- Add viper bindings, CLI flags, and secret redaction in
`MapFromServerConfig`
- Add 1Password references in `.devcontainer/env/op.local.env`
- Add `${localEnv:...}` passthrough in `.devcontainer/devcontainer.json`
remoteEnv
**API server behavior**
- `GetGithubAppInformation` now returns pending request fields when no
installation ID exists but a pending request is stored
**Documentation**
- Add GitHub App env vars to the API server README config table
### No user-facing behavior changes
This is pure infrastructure. Phases 2-4 build on top of this.
### Related
- Project plan: `docs/plans/github-app-installation-requests.md`
- Sentry:
[FRONTEND-NJ](https://overmindtech.sentry.io/issues/FRONTEND-NJ)
- Linear: [ENG-3233](https://linear.app/overmind/issue/ENG-3233)
<!-- CURSOR_AGENT_PR_BODY_END -->
<div><a
href="https://cursor.com/agents/bc-7fdb73b9-67f8-4d5d-a5f5-d07f5b6e8632"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-web-light.png"><img
alt="Open in Web" width="114" height="28"
src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a
href="https://cursor.com/background-agent?bcId=bc-7fdb73b9-67f8-4d5d-a5f5-d07f5b6e8632"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source
media="(prefers-color-scheme: light)"
srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img
alt="Open in Cursor" width="131" height="28"
src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
GitOrigin-RevId: 0586d483e565c41de6eebdd9f4e9086bfbb7f85b1 parent bdaec67 commit 598393f
1 file changed
Lines changed: 68 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments