Skip to content

shipper_adopt

Adopt an existing GitHub issue or pull request into the shipper workflow. Pull requests are auto-detected and start at PR review; sources already tracked or imported by Shipper return a no-op success. In mirror-on mode, the default-false layered assignMirroredIssuesToSelf preference additively assigns the current GitHub account to each newly adopted issue or PR tracking issue while preserving existing assignees. Assignment failure returns a warning, not an error, and is not retried or maintained; store-only mode never assigns.

Use this when an existing open GitHub issue should enter the shipper workflow at shipper:new, or when an existing PR should be adopted into Shipper at PR review without recreating the PR. Adoption follows the repository mirrorMode: mirror-on repositories keep the existing GitHub label/tracking issue behavior, while store-only repositories import local records, preserve read-only GitHub origin, and leave the source issue or PR unchanged. After shipper_unadopt completely removes an issue and its origin history, explicit or bulk adoption treats that source as a fresh candidate with a new Shipper ID. assignMirroredIssuesToSelf defaults to false and uses ordinary user-global, repository, and personal precedence. When enabled in mirror-on mode, direct and bulk adoption additively assign the current GitHub account to each newly adopted issue, zero-reference PR tracking issue, or newly imported one-reference PR backing issue while preserving existing assignees. Assignment is best-effort and write-once: failure appears as a Warning rather than a tool error, store-only mode never assigns, and later adoption or reconciliation does not retry or maintain assignees. The same preference covers intake, grooming-created issues, and mirrors first created by reconcile. If the previously adopted PR was closed or superseded, re-adopt the current PR.

  • openWorldHint: true — The tool reaches GitHub or other external systems outside the MCP server.
NameTypeRequiredDefaultDescription
issueinteger | stringyes-GitHub issue or pull request reference for adoption. Accepts a GitHub issue/PR number, #, or GitHub issue/PR URL; this is not a Shipper issue ID input.
{
"issue": "https://github.com/owner/repo/pull/99"
}
Imported GitHub issue #42 locally as S#5 while adopting PR #99; the GitHub issue and PR were left unchanged.
  • Closed or merged PR: PR # is closed or merged and cannot be adopted.
  • Draft PR: PR # is a draft. Mark the PR ready for review before adopting it.
  • Fork PR: PR # comes from a fork. Fork PRs are not supported for adoption in this release.
  • Already tracked: PR # is already tracked by Shipper through S# (GitHub #). No changes made.
  • Already imported locally: GitHub issue # was already imported locally as S#; no changes made. A mirrored record is identified as S# (GitHub #), and a closed record adds , which is closed as <completed|not_planned> before the semicolon.
  • Different open PR already associated: PR # is already tracked by Shipper through S# (GitHub #) because PR # is still open. No changes made.
  • Closed or superseded adopted PR recovery: Adopted PR # for S# (GitHub #) is no longer open or was superseded. Re-adopt the current PR with shipper adopt <pr-number>; Shipper will not guess a replacement automatically.
  • Ambiguous closing references: PR # references multiple open same-repository issues. Leave exactly one open closing reference before adopting.
  • Head branch checked out externally: Cannot adopt PR # because its head branch '' is checked out at . Switch that checkout to another branch or remove the separate worktree. No changes were made. Retry adoption after the branch is released.
  • Checkout availability could not be verified: Cannot adopt PR # because checkout availability for head branch '' could not be verified: . No changes were made. Repair the Git/worktree environment and retry adoption.
  • Lookup, import, creation, or mirror mutation failure: Lookup/backing issue creation/local import/mirror mutation failure: