| name | commit-push-pr |
| description | Commit current changes, push to remote, and create or update a pull request. Use when the user wants to commit and create a PR, push changes and open a pull request, or ship their current work as a PR. |
| targets | ["*"] |
Commit, Push, and PR Management
Step 1: Check Current Branch
Run git branch --show-current to get the current branch name.
If the current branch is main or master:
- Generate a descriptive branch name based on the staged/unstaged changes
- Create and switch to the new branch:
git checkout -b <new-branch-name>
Step 2: Stage and Commit Changes
- Run
git status to check for changes
- If there are unstaged changes, stage them:
git add .
- Analyze the changes and create a meaningful commit message
- Commit with:
git commit -m "<commit-message>"
Step 3: Push to Remote
Push the branch to remote with upstream tracking:
git push -u origin <branch-name>
Step 4: Handle Pull Request
Check if a PR already exists for this branch:
gh pr view --json number,title,body 2>/dev/null
If PR does NOT exist:
Create a new PR:
gh pr create --title "<title>" --body "<description>"
The PR description should include:
- Summary of changes
- Test plan (if applicable)
If PR already exists:
- Compare the current PR title and description with the actual changes
- If updates are needed (e.g., scope of changes has expanded), update the PR using GitHub API:
gh api repos/<owner>/<repo>/pulls/<pr-number> -X PATCH -f title="<new-title>" -f body="<new-description>"
Note: Use gh api instead of gh pr edit to avoid GraphQL deprecation warnings. 3. If no updates are needed, skip this step
Step 5: Report Result
Output the PR URL and a summary of actions taken.