feat(repo-scope): target a repo on another forge host without a local clone #468
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#468
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
owner_repocan retarget a repo on the forge the session is already anchored to, but it cannot name a repo on a DIFFERENT forge host. So there is no clone-free way to act on a repo that lives on another forge instance.What happens
madt_help repo-scope;madt_auth_loginauthenticates "this MCP session to the launch-scope forge").owner_repois host-less (the docs useowner_repo="octocat/hello"). It selects a repo on the ALREADY-resolved forge. It has no field for a host.dir=<local clone>, which carries that clone's origin and its own stored credentials.Concretely: from a session anchored to forge A, I wanted to file an issue against a repo on forge B.
owner_repo=owner/repowould have aimed at forge A (wrong host, or a 404). The write only worked because I had a local clone of the forge-B repo and could passdir=.Why this is a gap, not a guardrail
Issue
create/comment/list/getare explicitly PERMITTED through thedir=carve-out, so there is no safety reason they must route through a local checkout. The clone does one job only here: it tells madtea which forge and which token to use. A user with no local clone of the target has no way to reach it at all.Possible directions
Two independent pieces, either of which helps:
owner_repo(or a newhost=/forge=selector) name the forge, e.g.owner_repo=<host>/owner/repo, so a target on another forge is expressible.Relation to existing issues
Same root area as the host-resolution cluster (#460 open; #459, #429 closed) and forge reachability (#455), but none of those cover clone-free WRITE targeting across forges. This is the write-side capability, not the status-output correctness those track.
This touches the forge and credential-resolution model, so I should reconcile it against
docs/architecture/technical-choices.mdwhen it is scoped.Acceptance
owner_repokeeps its current behavior (targets the launch-scope forge).madt_help repo-scope.