Skip to content

Implement independent per-repo installer #727

@fullsend-ai-triage

Description

@fullsend-ai-triage

Note

This issue was automatically generated from meeting notes by the scribe agent.
Please review, edit, and add any missing context before prioritizing.

Problem

Fullsend currently only supports organization-level installation. The team has decided to prioritize a per-repo installation mode that is mutually exclusive with org-level installation. Each repo-level installation needs its own GitHub App and cloud service accounts, operating independently from any org-level setup.

Supporting both modes simultaneously introduces maintenance overhead, security model complexity, and potential configuration conflicts. The per-repo installer must be designed as a first-class path, not an afterthought bolted onto the org installer.

Options considered

  • Shared infrastructure with org installer: Reuse existing GitHub Apps and cloud accounts. Rejected due to security model conflicts and the difficulty of isolating permissions.
  • Fully independent per-repo installer: Each repo gets its own GitHub App and cloud service accounts. Chosen for cleaner security boundaries and simpler reasoning about permissions, at the cost of more resources per installation.
  • Hybrid approach with shared cloud accounts: Share cloud infrastructure but separate GitHub Apps. Rejected as a half-measure that doesn't fully resolve configuration conflicts.

Acceptance criteria

  • fullsend admin install --repo creates a dedicated GitHub App scoped to a single repository
  • Per-repo installation provisions independent cloud service accounts
  • Per-repo and org-level installations are mutually exclusive — the installer prevents both from targeting the same repository
  • Per-repo installation does not depend on any org-level configuration or infrastructure
  • Installation, uninstallation, and enrollment workflows function correctly for repo-level installs
  • Documentation updated to cover the per-repo installation path

Related

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions