Create a Pull Request for a Marshroom cart issue matching the current branch.
Steps:
- •Read
~/.config/marshroom/state.jsonand parse the JSON - •Run
git branch --show-currentto get the current branch name - •Find the cart entry whose
branchNamematches the current git branch and current git repository. If no match, tell the user they're not on a cart issue branch 3-1. Commit the current changes. Give proper commit message to commits. Ask user permission if the changes are too large or suspicious (e.g. 100+ changes, dummy files, DB updates, logs, and so on) - •Push the current branch:
git push -u origin HEAD - •Build the PR body:
- •Start with a brief description of the changes made
- •If the matched cart entry has an
issueBodyfield (non-null), include it under a "## Original Issue" section for reviewer context - •The body MUST include
close #<issueNumber>(this is mandatory for auto-closing the issue)
- •Create the PR using
gh pr create:- •Title: the issue title from the matched cart entry
- •Body: the constructed body from step 5
- •After PR creation, verify the body contains the closing keyword:
- •Run
gh pr view --json body -q '.body' - •If
close #<issueNumber>is NOT found in the body, fix it:gh pr edit --body "$(gh pr view --json body -q '.body')\n\nclose #<issueNumber>"
- •Run
- •Capture the PR URL and number:
- •Run
gh pr view --json number,url -q '.number,.url'
- •Run
- •Update issue status: run
marsh pr(ifmarshis available in PATH). Ifmarshis not found, notify to user to installmarshcommand correctly. - •Display the result:
- •PR URL
- •PR Number
- •Issue: #{issueNumber} {issueTitle}
- •Status: pending