Commit, Push, and Create PR
Automate the git workflow for completing a feature or fix.
Pre-computed Context
Before proceeding, gather this information:
- Current branch:
!git branch --show-current - Git status:
!git status --short - Recent commits on this branch:
!git log --oneline -5 - Diff summary:
!git diff --stat
Workflow
-
Review Changes
- Check
git statusfor all modified/added files - Review the diff to understand what's being committed
- Ensure no sensitive files are staged (.env, credentials, etc.)
- Check
-
Run Pre-commit Checks
- Format code:
ruff format .(if Python files changed) - Lint code:
ruff check .(if Python files changed) - Run tests:
pytest(if tests exist)
- Format code:
-
Stage and Commit
- Stage relevant files:
git add <files> - Create a commit with Conventional Commits format:
feat:for new featuresfix:for bug fixesdocs:for documentationrefactor:for refactoringtest:for testschore:for maintenance
- Write a clear, concise commit message focusing on "why"
- Stage relevant files:
-
Push to Remote
- Push the branch:
git push -u origin HEAD - If branch doesn't exist on remote, create it
- Push the branch:
-
Create Pull Request
- Use GitHub CLI:
gh pr create - Include:
- Clear title summarizing the change
- Description with summary and context
- Reference any related issues
- Add appropriate labels if applicable
- Use GitHub CLI:
Arguments
Pass a commit message or leave empty for auto-generated message based on changes.
Usage: /commit-push-pr [optional commit message]
Example: /commit-push-pr feat: add user authentication
Output
Return the PR URL when complete.