Context
GitHubInstallation.repositories is stored as an inline array on the installation document. For large GitHub orgs with hundreds or thousands of repos, this can exceed Firestore's 1 MiB per-document limit, causing silent write failures.
Identified in multi-model AI review of PR #452.
Current model
installations/{id}
repositories: [{ id, name, fullName, private }, ...] // unbounded array
Proposed model
installations/{id}
repositoryCount: number
// ... other fields
installations/{id}/repos/{repoId}
name: string
fullName: string
private: boolean
Impact
- Not urgent for early adoption (personal accounts have <50 repos typically)
- Becomes relevant for org-wide installations at Framna
- Requires changes to: types, repository, event handler, API controller, frontend service
Related
Context
GitHubInstallation.repositoriesis stored as an inline array on the installation document. For large GitHub orgs with hundreds or thousands of repos, this can exceed Firestore's 1 MiB per-document limit, causing silent write failures.Identified in multi-model AI review of PR #452.
Current model
Proposed model
Impact
Related