49 lines
1.3 KiB
Markdown
49 lines
1.3 KiB
Markdown
|
|
---
|
||
|
|
kind: epic
|
||
|
|
slug: connected-repos
|
||
|
|
title: Connected repos — paste remote URL, forge adapters
|
||
|
|
plan_slug: automation-foundation
|
||
|
|
status: draft
|
||
|
|
priority: P1
|
||
|
|
tenant_id: global
|
||
|
|
cursor_epic_id: null
|
||
|
|
updated_at: "2026-07-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
|
||
|
|
|
||
|
|
- [ ] Admin pastes Forgejo URL; Echodo stores link and detects `forge_type`.
|
||
|
|
- [ ] Worker/orchestrator can read `git_remote_url` + default branch from API.
|
||
|
|
|
||
|
|
## Tasks
|
||
|
|
|
||
|
|
_To be decomposed when epic graduates to `ready`._
|