Files
english/.opencode/skills/git/references/workflow-pr.md
2026-04-12 01:06:31 +07:00

59 lines
1.4 KiB
Markdown

# Pull Request Workflow
Execute via `git-manager` subagent.
## Variables
- TO_BRANCH: target (defaults to `main`)
- FROM_BRANCH: source (defaults to current branch)
## CRITICAL: Use REMOTE diff
PRs based on remote branches. Local diff includes unpushed changes.
## Tool 1: Sync + Analyze
**IMPORTANT: Always merge `main` (or any default branch) to current branch first.**
```bash
git fetch origin && \
git push -u origin HEAD 2>/dev/null || true && \
BASE=${BASE_BRANCH:-main} && \
HEAD=$(git rev-parse --abbrev-ref HEAD) && \
echo "=== PR: $HEAD$BASE ===" && \
echo "=== COMMITS ===" && \
git log origin/$BASE...origin/$HEAD --oneline && \
echo "=== FILES ===" && \
git diff origin/$BASE...origin/$HEAD --stat
```
**If "Branch not on remote":** Push first, retry.
## Tool 2: Generate Content
**Title:** Conventional commit format, <72 chars, NO version numbers
**Body:** Summary bullets + Test plan checklist
## Tool 3: Create PR
```bash
gh pr create --base $BASE --head $HEAD --title "..." --body "$(cat <<'EOF'
## Summary
- Bullet points
## Test plan
- [ ] Test item
EOF
)"
```
## DO NOT use (local comparison)
- `git diff main...HEAD`
- `git diff --cached`
- `git status`
## Error Handling
| Error | Action |
|-------|--------|
| Branch not on remote | `git push -u origin HEAD`, retry |
| Empty diff | Warn: "No changes for PR" |
| Push rejected | `git pull --rebase`, resolve, push |
| No upstream | `git push -u origin HEAD` |