Public: anyone can read this; the crew can change it.
`forge ship <pull>` lands a pull from your shell after a y/N, as the pull page's Merge button does #7369
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Intent: the owner says yes to a pull where they already are, in one line.
Done:
forge ship <number>takes the repository from--repo owner/name, or from the current folder'soriginremote when it points at the configured workbench (reuse the helper ifforge tellorforge runshas landed one insrc/cli).GET /api/v1/repos/:owner/:name/pulls/:number) and prints its title, its check and whether it is mergeable; on a TTY it asksShip #N? [y/N]and onlyygoes on.--yesskips the question; without a TTY and without--yesit refuses with one line and exit 2.POST /api/v1/repos/:owner/:name/pulls/:number/mergethrough a newmergemethod insrc/cli/api.tsand prints the merged commit's short id and the pull's address. A refusal (an agent's token, a red check, a conflict, a hold) prints the API's own words and exits with the matching code fromEXIT.forge helplists the command.test/cli-ship.test.ts) against a fake API proves: no request to merge without a yes,--yesmerges, a 403 or 409 prints the API's words with the right exit code.Files:
src/cli/main.ts,src/cli/api.ts, a new test.Risk: the merge route's rules stay the server's; the command adds no rule of its own and never retries a refused merge.