Initial commit
This commit is contained in:
12
.claude-plugin/plugin.json
Normal file
12
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "pull-request-generator",
|
||||
"description": "Provides comprehensive PR creation guidance with GitHub CLI, enforcing title conventions, following template structure, and offering concrete command examples with best practices.",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "ClaudeForge Community",
|
||||
"url": "https://github.com/claudeforge/marketplace"
|
||||
},
|
||||
"commands": [
|
||||
"./commands"
|
||||
]
|
||||
}
|
||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# pull-request-generator
|
||||
|
||||
Provides comprehensive PR creation guidance with GitHub CLI, enforcing title conventions, following template structure, and offering concrete command examples with best practices.
|
||||
287
commands/create-pull-request.md
Normal file
287
commands/create-pull-request.md
Normal file
@@ -0,0 +1,287 @@
|
||||
---
|
||||
description: Generate pull requests with proper title formatting, structured descriptions, and GitHub CLI integration
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Pull Request Generator
|
||||
|
||||
Generate well-formatted pull requests using GitHub CLI with consistent titles, structured descriptions, and proper templates.
|
||||
|
||||
## What It Does
|
||||
|
||||
- Creates pull requests using GitHub CLI
|
||||
- Formats PR titles with conventional commit prefixes
|
||||
- Generates structured PR descriptions
|
||||
- Links related issues automatically
|
||||
- Sets appropriate labels and reviewers
|
||||
|
||||
## How to Use
|
||||
|
||||
Run after committing and pushing your changes:
|
||||
|
||||
```bash
|
||||
/create-pull-request
|
||||
```
|
||||
|
||||
The command will guide you through PR creation.
|
||||
|
||||
## PR Title Format
|
||||
|
||||
Use conventional commit format with optional emoji:
|
||||
|
||||
```
|
||||
<type>(<scope>): <description>
|
||||
|
||||
Examples:
|
||||
feat(auth): add OAuth2 login support
|
||||
fix(api): resolve rate limiting issue
|
||||
docs(readme): update installation guide
|
||||
```
|
||||
|
||||
## Common Types
|
||||
|
||||
- `feat`: New feature
|
||||
- `fix`: Bug fix
|
||||
- `docs`: Documentation changes
|
||||
- `refactor`: Code restructuring
|
||||
- `test`: Test additions or modifications
|
||||
- `chore`: Build/config changes
|
||||
|
||||
## PR Description Template
|
||||
|
||||
```markdown
|
||||
## Summary
|
||||
Brief 1-2 sentence overview of changes
|
||||
|
||||
## Changes Made
|
||||
- Change 1
|
||||
- Change 2
|
||||
- Change 3
|
||||
|
||||
## Related Issues
|
||||
Closes #123
|
||||
Relates to #456
|
||||
|
||||
## Testing
|
||||
- [ ] Unit tests added/updated
|
||||
- [ ] Integration tests passing
|
||||
- [ ] Manual testing completed
|
||||
|
||||
## Screenshots
|
||||
(if UI changes)
|
||||
```
|
||||
|
||||
## GitHub CLI Commands
|
||||
|
||||
**Create PR**
|
||||
```bash
|
||||
gh pr create \
|
||||
--title "feat(search): add fuzzy search" \
|
||||
--body "$(cat <<'EOF'
|
||||
## Summary
|
||||
Implement fuzzy search for user queries
|
||||
|
||||
## Changes Made
|
||||
- Added fuzzysearch library
|
||||
- Updated search component
|
||||
- Added tests
|
||||
|
||||
## Related Issues
|
||||
Closes #234
|
||||
EOF
|
||||
)"
|
||||
```
|
||||
|
||||
**Create Draft PR**
|
||||
```bash
|
||||
gh pr create --draft --title "WIP: Feature in progress"
|
||||
```
|
||||
|
||||
**Set Base Branch**
|
||||
```bash
|
||||
gh pr create --base develop --head feature/new-feature
|
||||
```
|
||||
|
||||
**Add Reviewers and Labels**
|
||||
```bash
|
||||
gh pr create \
|
||||
--reviewer alice,bob \
|
||||
--label "enhancement,needs-review" \
|
||||
--assignee charlie
|
||||
```
|
||||
|
||||
## Complete Example
|
||||
|
||||
**Scenario**: Adding export feature
|
||||
|
||||
**Step 1: Commit and Push**
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "feat(export): add CSV export functionality"
|
||||
git push -u origin feature/csv-export
|
||||
```
|
||||
|
||||
**Step 2: Create PR**
|
||||
```bash
|
||||
gh pr create \
|
||||
--title "feat(export): add CSV export functionality" \
|
||||
--body "$(cat <<'EOF'
|
||||
## Summary
|
||||
Add ability to export data as CSV files
|
||||
|
||||
## Changes Made
|
||||
- Created ExportService class
|
||||
- Added CSV conversion logic
|
||||
- Added download button to UI
|
||||
- Wrote unit tests
|
||||
|
||||
## Related Issues
|
||||
Closes #189
|
||||
|
||||
## Testing
|
||||
- [x] Unit tests pass
|
||||
- [x] Tested with sample data
|
||||
- [x] Verified file downloads correctly
|
||||
EOF
|
||||
)"
|
||||
```
|
||||
|
||||
## Use Cases
|
||||
|
||||
- **Feature Development**: Submit new features for review
|
||||
- **Bug Fixes**: Create PRs for bug resolutions
|
||||
- **Documentation**: Update docs with clear descriptions
|
||||
- **Refactoring**: Explain code improvements
|
||||
- **Dependencies**: Update package versions with changelogs
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Clear Titles**: Make purpose immediately obvious
|
||||
- **Detailed Descriptions**: Explain what, why, and how
|
||||
- **Link Issues**: Reference related issue numbers
|
||||
- **Test Status**: Document what testing was done
|
||||
- **Screenshots**: Include for UI changes
|
||||
- **Breaking Changes**: Clearly mark any breaking changes
|
||||
- **Small PRs**: Keep focused on one concern
|
||||
|
||||
## PR Types
|
||||
|
||||
**Feature PR**
|
||||
```
|
||||
feat(payments): add Stripe integration
|
||||
|
||||
## Summary
|
||||
Integrate Stripe for payment processing
|
||||
|
||||
## Changes Made
|
||||
- Added Stripe SDK
|
||||
- Created payment service
|
||||
- Added checkout flow
|
||||
```
|
||||
|
||||
**Bug Fix PR**
|
||||
```
|
||||
fix(validation): correct email regex
|
||||
|
||||
## Summary
|
||||
Fix email validation rejecting valid addresses
|
||||
|
||||
## Changes Made
|
||||
- Updated regex to allow + signs
|
||||
- Added test cases
|
||||
- Fixed edge case handling
|
||||
```
|
||||
|
||||
**Documentation PR**
|
||||
```
|
||||
docs(api): update endpoint documentation
|
||||
|
||||
## Summary
|
||||
Document all REST API endpoints
|
||||
|
||||
## Changes Made
|
||||
- Added endpoint descriptions
|
||||
- Included request/response examples
|
||||
- Updated authentication section
|
||||
```
|
||||
|
||||
## Advanced Options
|
||||
|
||||
**Set Milestone**
|
||||
```bash
|
||||
gh pr create --milestone "v2.0"
|
||||
```
|
||||
|
||||
**Add Projects**
|
||||
```bash
|
||||
gh pr create --project "Development Sprint"
|
||||
```
|
||||
|
||||
**Template from File**
|
||||
```bash
|
||||
gh pr create --body-file pr-template.md
|
||||
```
|
||||
|
||||
**Web UI**
|
||||
```bash
|
||||
gh pr create --web
|
||||
```
|
||||
|
||||
## Checklist for PR
|
||||
|
||||
Before creating, verify:
|
||||
- [ ] Code is committed and pushed
|
||||
- [ ] All tests pass locally
|
||||
- [ ] PR title follows format
|
||||
- [ ] Description is complete
|
||||
- [ ] Related issues linked
|
||||
- [ ] Reviewers assigned
|
||||
- [ ] Appropriate labels added
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**Not Authenticated**: Run `gh auth login`
|
||||
|
||||
**No Upstream Branch**: Push with `git push -u origin branch-name`
|
||||
|
||||
**PR Already Exists**: Check existing PRs with `gh pr list`
|
||||
|
||||
**Wrong Base Branch**: Specify with `--base main`
|
||||
|
||||
## After Creating PR
|
||||
|
||||
**View PR**
|
||||
```bash
|
||||
gh pr view 123
|
||||
```
|
||||
|
||||
**Check Status**
|
||||
```bash
|
||||
gh pr checks
|
||||
```
|
||||
|
||||
**Edit PR**
|
||||
```bash
|
||||
gh pr edit 123 --title "New title"
|
||||
```
|
||||
|
||||
**Add Comment**
|
||||
```bash
|
||||
gh pr comment 123 --body "Additional info"
|
||||
```
|
||||
|
||||
**Mark Ready**
|
||||
```bash
|
||||
gh pr ready 123
|
||||
```
|
||||
|
||||
## Quality Standards
|
||||
|
||||
A good PR includes:
|
||||
- Descriptive, formatted title
|
||||
- Clear summary of changes
|
||||
- Linked related issues
|
||||
- Testing information
|
||||
- Appropriate reviewers
|
||||
- Relevant labels
|
||||
- Complete description following template
|
||||
45
plugin.lock.json
Normal file
45
plugin.lock.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||
"pluginId": "gh:claudeforge/marketplace:plugins/commands/pull-request-generator",
|
||||
"normalized": {
|
||||
"repo": null,
|
||||
"ref": "refs/tags/v20251128.0",
|
||||
"commit": "883cf1f173f1b6bf3b0a6585cf580b500d3a0f75",
|
||||
"treeHash": "aff4a6651c52ea61780ca69ac72aaad024df9b0dcd70b133b59df61ed3379f0f",
|
||||
"generatedAt": "2025-11-28T10:15:35.903063Z",
|
||||
"toolVersion": "publish_plugins.py@0.2.0"
|
||||
},
|
||||
"origin": {
|
||||
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||
"branch": "master",
|
||||
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||
},
|
||||
"manifest": {
|
||||
"name": "pull-request-generator",
|
||||
"description": "Provides comprehensive PR creation guidance with GitHub CLI, enforcing title conventions, following template structure, and offering concrete command examples with best practices.",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"content": {
|
||||
"files": [
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "aefe83069012b424c898efa1bef9f33d53993725c7df637d2675e7d95e75cc36"
|
||||
},
|
||||
{
|
||||
"path": ".claude-plugin/plugin.json",
|
||||
"sha256": "5d641e5fff0de20de6418c44ad6a62fe60f20e14632f4033c10f1f4609501fd7"
|
||||
},
|
||||
{
|
||||
"path": "commands/create-pull-request.md",
|
||||
"sha256": "178b479b18a116f79bdbd546bdd6bb8728b029330ef76af7f0a69e8872bdda2c"
|
||||
}
|
||||
],
|
||||
"dirSha256": "aff4a6651c52ea61780ca69ac72aaad024df9b0dcd70b133b59df61ed3379f0f"
|
||||
},
|
||||
"security": {
|
||||
"scannedAt": null,
|
||||
"scannerVersion": null,
|
||||
"flags": []
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user