Skip to content

T-KYRZ-pr-update-and-pr-commands-go-through-the-code-host-port

State: planning/backlog · Impact: medium · Complexity: medium

Forgejo support is deferred. When it comes back, pr survey/pr update and every command that takes a PR argument must work on a Forgejo-hosted repo. Today only pr classify, the prs tick and the Router go through the port (being renamed from Forge to CodeHost in #2472, still open). Carried over from M-JEH1.

  • packages/ts/pr-update/src/survey.ts imports @sksizer/easy-gh and talks to GitHub directly (README, “GitHub today, a Forge port later”).
  • The port lives in solutions/ontological/lib/services/pr/forge/ (code-host/ once #2472 merges), which packages/ts/pr-update cannot import without inverting the package dependency.
  • parsePrInput (forge/pr-ref.ts) is wired only into pr review; classify, update and the others parse PR arguments their own way.
  • ops/review.ts still reads PR state with gh.prView (T-G1NZ’s known gap).

The CodeHost port lives in a package both pr-update and sdlc import. pr-update’s survey and update read PR state through it, every PR-argument command uses parsePrInput, and a Forgejo fixture gives the same pr-update verdicts as GitHub.

  1. Decide the port’s package home (likely its own packages/ts/ package, or inside pr-update).
  2. Move the port and adapters there; sdlc imports it.
  3. Route pr-update survey/update through the port; inject it through pr-update’s ports.
  4. Wire parsePrInput into every command that accepts a PR argument; move pr review off gh.prView.
  5. Add a Forgejo fixture for pr-update.
AreaNote
solutions/ontological/lib/services/pr/forge/The port and adapters (code-host/ after #2472)
packages/ts/pr-update/survey and update
solutions/ontological/lib/services/pr/ops/PR-argument commands
  • AC-1: packages/ts/pr-update has no @sksizer/easy-gh import outside an adapter.
  • AC-2: Every command that takes a PR argument parses it with parsePrInput.
  • AC-3: A Forgejo fixture produces the same survey/update verdicts as the GitHub one.
  • Other code hosts (GitLab).

← Back to Tasks