How to Create a Pull Request Using GitHub CLI
This guide explains how to create pull requests using GitHub CLI in our project.
Important: All PR titles and descriptions should be written in English.
Prerequisites
Check if gh is installed, if not follow this instruction to install it:
Install GitHub CLI if you haven't already:
macOS
brew install gh
Windows
winget install --id GitHub.cli
Linux
Follow instructions at https://github.com/cli/cli/blob/trunk/docs/install_linux.md
Authenticate with GitHub:
gh auth login
Pre-flight Checks
Before creating a PR, check for uncommitted changes:
-
Run git status to check for uncommitted changes (staged, unstaged, or untracked files)
-
If uncommitted changes exist, use the Skill tool to run the git:commit command first: Skill: git:commit
-
This ensures all your work is committed before creating the PR
Creating a New Pull Request
First, prepare your PR description following the template in @.github/pull_request_template.md
Use the gh pr create --draft command to create a new pull request:
Basic command structure
gh pr create --draft --title "✨(scope): Your descriptive title" --body "Your PR description" --base main
For more complex PR descriptions with proper formatting, use the --body-file option with the exact PR template structure:
Create PR with proper template structure
gh pr create --draft --title "✨(scope): Your descriptive title" --body-file .github/pull_request_template.md --base main
Best Practices
Language: Always use English for PR titles and descriptions
PR Title Format: Use conventional commit format with emojis
-
Always include an appropriate emoji at the beginning of the title
-
Use the actual emoji character (not the code representation like :sparkles: )
-
Examples:
-
✨(supabase): Add staging remote configuration
-
🐛(auth): Fix login redirect issue
-
📝(readme): Update installation instructions
Description Template: Always use our PR template structure from @.github/pull_request_template.md:
Template Accuracy: Ensure your PR description precisely follows the template structure:
-
Don't modify or rename the PR-Agent sections (pr_agent:summary and pr_agent:walkthrough )
-
Keep all section headers exactly as they appear in the template
-
Don't add custom sections that aren't in the template
Draft PRs: Start as draft when the work is in progress
-
Use --draft flag in the command
-
Convert to ready for review when complete using gh pr ready
Common Mistakes to Avoid
-
Using Non-English Text: All PR content must be in English
-
Incorrect Section Headers: Always use the exact section headers from the template
-
Adding Custom Sections: Stick to the sections defined in the template
-
Using Outdated Templates: Always refer to the current @.github/pull_request_template.md file
Missing Sections
Always include all template sections, even if some are marked as "N/A" or "None"
Additional GitHub CLI PR Commands
Here are some additional useful GitHub CLI commands for managing PRs:
List your open pull requests
gh pr list --author "@me"
Check PR status
gh pr status
View a specific PR
gh pr view <PR-NUMBER>
Check out a PR branch locally
gh pr checkout <PR-NUMBER>
Convert a draft PR to ready for review
gh pr ready <PR-NUMBER>
Add reviewers to a PR
gh pr edit <PR-NUMBER> --add-reviewer username1,username2
Merge a PR
gh pr merge <PR-NUMBER> --squash
Using Templates for PR Creation
To simplify PR creation with consistent descriptions, you can create a template file:
-
Create a file named pr-template.md with your PR template
-
Use it when creating PRs:
gh pr create --draft --title "feat(scope): Your title" --body-file pr-template.md --base main
Related Documentation
-
PR Template
-
Conventional Commits
-
GitHub CLI documentation