Submatter/plans/Plan-automation-foundation/Epic-connected-repos/Epic-connected-repos.md

58 lines
1.7 KiB
Markdown
Raw Normal View History

---
kind: epic
slug: connected-repos
title: Connected repos — paste remote URL, forge adapters
plan_slug: automation-foundation
status: done
priority: P1
tenant_id: global
cursor_epic_id: null
updated_at: "2026-08-03"
---
# Epic objective
Workspace admins connect git remotes (Forgejo, GitHub, GitLab, Bitbucket, future Origin) via **paste URL** UX. Store `repo_links` with `forge_type`, API base, and credentials reference. Provide a `ForgeAdapter` interface for clone metadata, open PR, and (later) webhooks.
See automation foundation discussion: Vercel/Coolify-style “show me your repo.”
## In scope / out of scope
**In scope**
- `connected_repos` (or `repo_links`) Drizzle table, workspace-scoped.
- tRPC CRUD + “test clone” (shallow fetch).
- Settings UI: connect / disconnect / list.
- Forge adapter trait + implementations: `forgejo`, `github` (minimum two).
**Out of scope**
- Webhook receivers (Epic 8).
- Orchestrator clone logic (Epic 6 consumes this table).
## Dependencies
- Workspace admin auth patterns (existing).
## Blocks
- Epic 6 (orchestrator), Epic 7 (worker).
## Acceptance criteria
- [x] Admin pastes Forgejo URL; Echodo stores link and detects `forge_type`.
- [x] Worker/orchestrator can read `git_remote_url` + default branch from API.
## Tasks
- [x] [Task-shared-forge-schemas](./Task-shared-forge-schemas.md)
- [x] [Task-db-connected-repos-migration](./Task-db-connected-repos-migration.md)
- [x] [Task-forge-adapters-trpc](./Task-forge-adapters-trpc.md)
- [x] [Task-settings-connected-repos-ui](./Task-settings-connected-repos-ui.md)
## Follow-on tasks (Autensa benchmark)
| Task | Link |
|------|------|
| Repo setup preflight tab | [Task-repo-setup-preflight](./Task-repo-setup-preflight.md) |