AgentSkillsCN

github-pr

在提交、变基并推送更改后,创建 GitHub 拉取请求。当用户要求创建 PR、提交更改以供审核,或打开拉取请求时,可选用此技能。

SKILL.md
--- frontmatter
name: github-pr
description: Create a GitHub pull request after committing, rebasing, and pushing changes. Use when the user asks to create a PR, submit changes for review, or open a pull request.

PyPTO GitHub Pull Request Workflow

Prerequisites

⚠️ Run git-commit skill first to commit all changes.

Workflow Steps

  1. Check for existing PR (exit if found)
  2. Fetch upstream changes
  3. Rebase onto upstream/main
  4. Resolve conflicts if needed
  5. Push to fork with --force-with-lease
  6. Create PR using gh CLI

Step 1: Check for Existing PR

bash
BRANCH_NAME=$(git branch --show-current)
gh pr list --head "$BRANCH_NAME" --state open

If PR exists: Display with gh pr view and exit immediately.

Step 2: Fetch Upstream

bash
git remote add upstream https://github.com/hw-native-sys/pypto.git  # If needed
git fetch upstream

Step 3: Rebase

bash
git rebase upstream/main  # Or user-specified branch

On conflicts:

bash
git status                     # View conflicts
# Edit files, remove markers
git add path/to/resolved/file
git rebase --continue
# If stuck: git rebase --abort

Step 4: Push

bash
# First push
git push --set-upstream origin BRANCH_NAME

# After rebase (use --force-with-lease, NOT --force)
git push --force-with-lease origin BRANCH_NAME

⚠️ Use --force-with-lease - safer than --force, fails if remote has unexpected changes.

Step 5: Create PR

Check gh CLI:

bash
gh auth status

If gh NOT available: Report to user and provide manual URL:

code
https://github.com/hw-native-sys/pypto/compare/main...BRANCH_NAME

If gh available:

bash
gh pr create \
  --title "Brief description of changes" \
  --body "$(cat <<'EOF'
## Summary
- Key change 1
- Key change 2

## Testing
- [ ] All tests pass
- [ ] Code review completed
- [ ] Documentation updated

## Related Issues
Fixes #ISSUE_NUMBER (if applicable)
EOF
)"

PR Title/Body: Auto-extracted from commit messages since upstream/main.

Common Issues

IssueSolution
PR already existsgh pr view then exit
Merge conflictsResolve, git add, git rebase --continue
Push rejectedgit push --force-with-lease
gh not authenticatedTell user to run gh auth login
Wrong upstream branchUse git rebase upstream/BRANCH

Checklist

  • No existing PR for branch (exit if found)
  • Changes committed via git-commit
  • Fetched upstream and rebased successfully
  • Conflicts resolved
  • Pushed with --force-with-lease
  • PR created with clear title/body

Remember

  • Always rebase before creating PR
  • Use --force-with-lease, not --force
  • Don't auto-install gh CLI - let user do it