Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/guides/dev/cli-internals.md
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ Both modes call the same functions (`runAppSetup`, `gcf.NewProvisioner`, `Provis
| **2. App setup** | `runAppSetup()` → PEMs + App IDs | All 7 roles by default | Excludes "fullsend" role |
| **3. Mint** | `gcf.Provision()` or `EnsureOrgInMint()` | — | + `RegisterPerRepoWIF()` |
| **4. WIF** | `ProvisionWIF()` | Org-wide provider ID | `mintcore.BuildRepoProviderID()` (repo-scoped) |
| **5. Scaffold** | `scaffold.PerRepoCustomizedDirs()` / `WalkFullsendRepo()` | Creates `.fullsend` repo, pushes workflows + optional binary | Writes `.fullsend/` dir + shim workflow + optional binary in target repo |
| **5. Scaffold** | `repos.BuildScaffoldFiles()` (via `scaffold.CollectPerRepoInstallFiles()`) | Creates `.fullsend` repo, pushes workflows + optional binary | Writes `.fullsend/` dir + shim workflow + optional binary in target repo |
| **6. Secrets** | Same secret names, same API calls | Config repo + org variable | Target repo + `PER_REPO_GUARD` |
| **7. Enrollment** | — | `EnrollmentLayer` enables repos | No-op (self-contained) |

Expand All @@ -267,7 +267,7 @@ Install: process 1→8 (forward)
Uninstall: process 8→1 (reverse)
```

Per-repo mode does not use the layer stack — it runs the same phases inline in `runPerRepoInstall()` and `runGitHubSetupPerRepo()` since there's no need for composable uninstall ordering with a single repo. Vendoring (when `--vendor` is set) and stale asset cleanup are handled inline or via shared helpers; per-org mode uses `VendorBinaryLayer`.
Per-repo mode does not use the layer stack — `runPerRepoInstall()` delegates to `repos.Install()` (from `internal/repos`) for the core install logic (guard check, WIF provisioning, scaffold commit, variable/secret writes), while `runGitHubSetupPerRepo()` handles GitHub-specific setup. There's no need for composable uninstall ordering with a single repo. Vendoring (when `--vendor` is set) and stale asset cleanup are handled inline or via shared helpers; per-org mode uses `VendorBinaryLayer`.

### Binary acquisition (`internal/binary`)

Expand Down
6 changes: 4 additions & 2 deletions docs/plans/repos-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -336,9 +336,11 @@ in parallel with PRs 4–8.

## Phase 1: Foundation

### PR 1: Extract per-repo install logic into reusable package
### PR 1: Extract per-repo install logic into reusable package

**Scope:** Refactor only. Zero behavioral change.
**Status:** Implemented in [#3003](https://github.com/fullsend-ai/fullsend/pull/3003).

**Scope:** Refactor only. Preserves install semantics.

The existing `runPerRepoInstall()` in `internal/cli/admin.go` is ~450
lines mixing install logic with CLI concerns (interactive prompts,
Expand Down
Loading
Loading