Skip to content

tools: add create-pr-from-issue.sh for automated PR creation#33

Merged
isaaceliape merged 3 commits into
masterfrom
tools/create-pr-from-issue
Nov 25, 2025
Merged

tools: add create-pr-from-issue.sh for automated PR creation#33
isaaceliape merged 3 commits into
masterfrom
tools/create-pr-from-issue

Conversation

@isaaceliape
Copy link
Copy Markdown
Owner

Add new tool to create pull requests directly from GitHub issues.

Features

✨ Streamlined issue → branch → PR workflow:

  • Automatically fetch issue details from GitHub
  • Generate branch names from issue title (customizable)
  • Create new branch from specified base branch
  • Auto-generate PR title and description from issue body
  • Support for draft PRs
  • Auto-link issue with 'Closes #XXX'
  • Comprehensive documentation

Usage Examples

# Create PR from issue #31
./tools/create-pr-from-issue.sh --issue 31

# Create draft PR with auto-formatted branch
./tools/create-pr-from-issue.sh -i 26 --draft --auto-format

# Auto-link the issue in PR description
./tools/create-pr-from-issue.sh --issue 30 --link-issue

# Create PR merging to develop branch
./tools/create-pr-from-issue.sh -i 27 --base develop

Options

  • --issue <NUMBER>: Issue number (required)
  • --branch <NAME>: Custom branch name
  • --title <TITLE>: Custom PR title
  • --base <BRANCH>: Base branch to merge into (default: master)
  • --draft: Create as draft PR
  • --auto-format: Auto-format branch name (kebab-case)
  • --link-issue: Include 'Closes #issue' in description
  • --no-branch: Use current branch instead of creating new one

Changes

  • ✅ Added tools/create-pr-from-issue.sh with full functionality
  • ✅ Updated tools/README.md with comprehensive documentation
  • ✅ Added Workflow 6 example
  • ✅ Updated Quick Reference table
  • ✅ Added to PATH symlink suggestions

Eliape, Isaac added 2 commits November 25, 2025 11:37
Implement automated linting pipeline (Issue #31):

Phase 1: Create GitHub Actions Workflow
- Create .github/workflows/lint.yml workflow file
- Configure workflow to trigger on PR and push to master
- Set up BUN and Node.js environment
- Run ESLint linting checks
- Generate workflow status checks

Phase 2: Configure Workflow Details
- Implement caching for BUN modules (~bun/install/cache)
- Implement caching for node_modules
- Use frozen lockfile for deterministic builds
- Set 10-minute timeout for workflow
- Configure artifact upload for lint results
- Set Node.js 20.x for best compatibility

Phase 3: Configure Branch Protection
- Require ESLint Code Quality Check to pass before merge
- Require 1+ code review approval
- Dismiss stale pull request reviews
- Block force pushes and branch deletions
- Enforce rules for all users including admins

Phase 4: Documentation & Badge
- Add workflow status badge to README
- Create comprehensive CI/CD Pipeline section in README
- Document workflow triggers, steps, and performance
- Add branch protection rules documentation
- Include PR workflow and troubleshooting guide
- Update AGENTS.md with CI/CD workflow information
- Update Table of Contents with CI/CD link

Features:
- Average execution time: < 2 minutes
- Smart caching minimizes reinstalls
- Deterministic builds with frozen lockfile
- Clear developer workflow guidelines
- Prevents low-quality code from merging
Add new tool to create pull requests directly from GitHub issues:

Features:
- Automatically fetch issue details from GitHub
- Generate branch name from issue title (customizable)
- Create new branch from specified base branch (default: master)
- Auto-generate PR title and description from issue
- Support for draft PRs
- Option to auto-link issue with 'Closes #XXX'
- Custom branch naming with --auto-format
- Use current branch with --no-branch flag
- Comprehensive documentation and examples

The tool streamlines the workflow from issue → branch → PR:
1. Fetches issue details
2. Generates branch name (default: type/issue-NUMBER-title)
3. Creates branch from base branch
4. Generates PR description template from issue body
5. Pushes branch to remote
6. Creates pull request on GitHub

Options:
- --issue <NUMBER>: Issue number (required)
- --branch <NAME>: Custom branch name
- --title <TITLE>: Custom PR title
- --base <BRANCH>: Base branch to merge into (default: master)
- --draft: Create as draft PR
- --auto-format: Auto-format branch name (kebab-case)
- --link-issue: Include 'Closes #issue' in description
- --no-branch: Use current branch instead of creating new one

Documentation:
- Updated tools/README.md with comprehensive documentation
- Added Workflow 6: Create Pull Request from Issue
- Included examples and sample output
- Updated Quick Reference table
- Added to PATH symlink suggestions
@isaaceliape
Copy link
Copy Markdown
Owner Author

PR needs rebase after workflow fix in #35. Rebasing now...

@isaaceliape isaaceliape merged commit b6f4dc8 into master Nov 25, 2025
2 checks passed
isaaceliape added a commit that referenced this pull request Nov 26, 2025
* ci/cd: configure github actions linting workflow and branch protection

Implement automated linting pipeline (Issue #31):

Phase 1: Create GitHub Actions Workflow
- Create .github/workflows/lint.yml workflow file
- Configure workflow to trigger on PR and push to master
- Set up BUN and Node.js environment
- Run ESLint linting checks
- Generate workflow status checks

Phase 2: Configure Workflow Details
- Implement caching for BUN modules (~bun/install/cache)
- Implement caching for node_modules
- Use frozen lockfile for deterministic builds
- Set 10-minute timeout for workflow
- Configure artifact upload for lint results
- Set Node.js 20.x for best compatibility

Phase 3: Configure Branch Protection
- Require ESLint Code Quality Check to pass before merge
- Require 1+ code review approval
- Dismiss stale pull request reviews
- Block force pushes and branch deletions
- Enforce rules for all users including admins

Phase 4: Documentation & Badge
- Add workflow status badge to README
- Create comprehensive CI/CD Pipeline section in README
- Document workflow triggers, steps, and performance
- Add branch protection rules documentation
- Include PR workflow and troubleshooting guide
- Update AGENTS.md with CI/CD workflow information
- Update Table of Contents with CI/CD link

Features:
- Average execution time: < 2 minutes
- Smart caching minimizes reinstalls
- Deterministic builds with frozen lockfile
- Clear developer workflow guidelines
- Prevents low-quality code from merging

* tools: add create-pr-from-issue.sh tool for automated PR creation

Add new tool to create pull requests directly from GitHub issues:

Features:
- Automatically fetch issue details from GitHub
- Generate branch name from issue title (customizable)
- Create new branch from specified base branch (default: master)
- Auto-generate PR title and description from issue
- Support for draft PRs
- Option to auto-link issue with 'Closes #XXX'
- Custom branch naming with --auto-format
- Use current branch with --no-branch flag
- Comprehensive documentation and examples

The tool streamlines the workflow from issue → branch → PR:
1. Fetches issue details
2. Generates branch name (default: type/issue-NUMBER-title)
3. Creates branch from base branch
4. Generates PR description template from issue body
5. Pushes branch to remote
6. Creates pull request on GitHub

Options:
- --issue <NUMBER>: Issue number (required)
- --branch <NAME>: Custom branch name
- --title <TITLE>: Custom PR title
- --base <BRANCH>: Base branch to merge into (default: master)
- --draft: Create as draft PR
- --auto-format: Auto-format branch name (kebab-case)
- --link-issue: Include 'Closes #issue' in description
- --no-branch: Use current branch instead of creating new one

Documentation:
- Updated tools/README.md with comprehensive documentation
- Added Workflow 6: Create Pull Request from Issue
- Included examples and sample output
- Updated Quick Reference table
- Added to PATH symlink suggestions

---------

Co-authored-by: Eliape, Isaac <IEliape@unum.com>
isaaceliape added a commit that referenced this pull request Nov 26, 2025
…#52)

* fix: fix Menu.vue table structure and update test row count for dark mode

* feat(store): establish Pinia store architecture and best practices (#39)

Establish a comprehensive Pinia store architecture with best practices and documentation:

- Created docs/pinia-store-architecture.md with complete store patterns and guidelines
- Created docs/naming-conventions.md with store naming standards and conventions
- Created docs/store-examples-migration.md with practical examples and Vuex migration guide
- Added src/store/types.ts with TypeScript type definitions for store state
- Added src/store/utilities.ts with factory functions for consistent store patterns
- Updated src/store/app.ts to use new types and improve documentation
- Updated README.md with store architecture section and documentation links

Key improvements:
- Established clear naming conventions for state (camelCase), getters (get prefix), actions (verb prefix)
- Documented module separation strategy for future growth
- Provided factory functions for common store patterns (setters, toggles, increments, etc)
- Added comprehensive examples for component integration
- Created migration guide from Vuex to Pinia
- Included persistence patterns and async action examples
- Full type safety with TypeScript interfaces

All acceptance criteria met:
✓ Pinia store architecture document created with best practices
✓ Store structure follows Vue 3 Composition API patterns
✓ Naming conventions established for getters, actions, state
✓ Module separation strategy defined
✓ TypeScript types for store state created
✓ Store documentation added to codebase
✓ Code passes linting and builds successfully

This establishes a solid foundation for state management and future Pinia migrations.

* test(store): add comprehensive unit tests for Pinia app store

Implement comprehensive test suite for the migrated Pinia store covering:
- All state properties initialization and values
- Getter computations (getSentencesCount)
- Error count actions (set, increase)
- Words count management
- Menu state toggling and setting
- Sentences array management
- Sentence position tracking
- Font selection and font size adjustments
- Capital letters toggle
- Typing input state management
- Text content updates (source, article, final text)
- Dark mode toggle with localStorage persistence
- System preference detection fallback
- Store instance isolation and singleton pattern

Fixes #40 - Migrate appState from Vuex composition to Pinia

* Remove deprecated Vuex helper functions from codebase

Removes unused legacy helper functions (mutationFactory, mapAppState, mapAppGetters, mapAppMutations) from helpers.ts since all components have been successfully migrated to Pinia. Keeps only the active updateSelectedFont() function and updates its tests to verify font styling functionality. This completes the Vuex to Pinia migration by cleaning up all deprecated code references.

* fix: wrap table rows in thead/tbody to fix HTML validation warnings

* refactor(TextRenderer): apply ESLint formatting fixes and add component tests

* ci/cd: simplify lint workflow and fix status check recognition (#35)

* ci/cd: configure github actions linting workflow and branch protection

Implement automated linting pipeline (Issue #31):

Phase 1: Create GitHub Actions Workflow
- Create .github/workflows/lint.yml workflow file
- Configure workflow to trigger on PR and push to master
- Set up BUN and Node.js environment
- Run ESLint linting checks
- Generate workflow status checks

Phase 2: Configure Workflow Details
- Implement caching for BUN modules (~bun/install/cache)
- Implement caching for node_modules
- Use frozen lockfile for deterministic builds
- Set 10-minute timeout for workflow
- Configure artifact upload for lint results
- Set Node.js 20.x for best compatibility

Phase 3: Configure Branch Protection
- Require ESLint Code Quality Check to pass before merge
- Require 1+ code review approval
- Dismiss stale pull request reviews
- Block force pushes and branch deletions
- Enforce rules for all users including admins

Phase 4: Documentation & Badge
- Add workflow status badge to README
- Create comprehensive CI/CD Pipeline section in README
- Document workflow triggers, steps, and performance
- Add branch protection rules documentation
- Include PR workflow and troubleshooting guide
- Update AGENTS.md with CI/CD workflow information
- Update Table of Contents with CI/CD link

Features:
- Average execution time: < 2 minutes
- Smart caching minimizes reinstalls
- Deterministic builds with frozen lockfile
- Clear developer workflow guidelines
- Prevents low-quality code from merging

* tools: add create-pr-from-issue.sh tool for automated PR creation

Add new tool to create pull requests directly from GitHub issues:

Features:
- Automatically fetch issue details from GitHub
- Generate branch name from issue title (customizable)
- Create new branch from specified base branch (default: master)
- Auto-generate PR title and description from issue
- Support for draft PRs
- Option to auto-link issue with 'Closes #XXX'
- Custom branch naming with --auto-format
- Use current branch with --no-branch flag
- Comprehensive documentation and examples

The tool streamlines the workflow from issue → branch → PR:
1. Fetches issue details
2. Generates branch name (default: type/issue-NUMBER-title)
3. Creates branch from base branch
4. Generates PR description template from issue body
5. Pushes branch to remote
6. Creates pull request on GitHub

Options:
- --issue <NUMBER>: Issue number (required)
- --branch <NAME>: Custom branch name
- --title <TITLE>: Custom PR title
- --base <BRANCH>: Base branch to merge into (default: master)
- --draft: Create as draft PR
- --auto-format: Auto-format branch name (kebab-case)
- --link-issue: Include 'Closes #issue' in description
- --no-branch: Use current branch instead of creating new one

Documentation:
- Updated tools/README.md with comprehensive documentation
- Added Workflow 6: Create Pull Request from Issue
- Included examples and sample output
- Updated Quick Reference table
- Added to PATH symlink suggestions

* tools: enhance create-issue.sh to auto-fill template fields with provided data

Add intelligent template field options to fill templates with provided information:

New Options:
- Template field options automatically populate template sections
- Support for all template types: scrum, feature, bug, refactor

Scrum Template Fields:
- --person <ROLE>: User story persona (default: role/persona)
- --action <ACTION>: Desired action (default: action/feature)
- --benefit <BENEFIT>: Expected benefit (default: benefit/value)
- --story-points <POINTS>: Story points (filled in template)

Feature Template Fields:
- --description <TEXT>: Feature description
- --behavior <TEXT>: Expected behavior
- --criteria <TEXT>: Acceptance criteria (comma-separated → checklist)

Bug Template Fields:
- --description <TEXT>: Bug description
- --steps <TEXT>: Reproduction steps (comma-separated → numbered list)
- --behavior <TEXT>: Expected behavior
- --actual <TEXT>: Actual behavior
- --environment <TEXT>: Environment info
- --context <TEXT>: Additional context

Refactor Template Fields:
- --current-state <TEXT>: Current implementation
- --proposed <TEXT>: Proposed changes
- --benefits <TEXT>: Benefits (comma-separated → bullet list)
- --plan <TEXT>: Implementation plan (comma-separated → numbered list)
- --strategy <TEXT>: Testing strategy

Improvements:
- All template data fields now have defaults
- Comma-separated values automatically formatted into lists
- Better documentation with examples
- Uses heredoc for cleaner template generation

Usage Examples:
./create-issue.sh -t "Add timer feature" --template scrum --story-points 8 \
  --person "user" --action "see typing speed" --benefit "track progress"

./create-issue.sh -t "Login broken" --template bug --priority CRITICAL \
  --description "Button not responding" \
  --steps "1. Go to login,2. Click button,3. Nothing happens" \
  --behavior "Navigate to dashboard" --actual "Page freezes"

./create-issue.sh -t "Dark mode" --template feature \
  --description "Add dark theme" \
  --criteria "Toggle in settings,Persist on reload,Support all components"

Benefits:
- Faster issue creation with pre-filled templates
- Reduced manual data entry
- Consistent format for acceptance criteria and lists
- Better structured issue documentation

* ci/cd: simplify lint workflow and fix status check recognition

Remove unnecessary 'lint-success' job that was causing status check delays.

Issue:
- The secondary 'lint-success' job was not being properly recognized by GitHub
- Status checks were stuck in 'Waiting for status to be reported' state
- This prevented PRs from being merged even when linting passed

Solution:
- Simplified workflow to single 'lint' job
- Job name now matches GitHub branch protection requirement exactly
- Status check: 'ESLint Code Quality Check (20.x)' (includes matrix context)
- Workflow runs faster with fewer jobs
- Status checks now report immediately after completion

Branch Protection Updated:
- Changed required context to 'ESLint Code Quality Check (20.x)'
- Properly recognized by GitHub Actions
- PRs can now merge after passing linting

---------

Co-authored-by: Eliape, Isaac <IEliape@unum.com>

* tools: add create-pr-from-issue.sh for automated PR creation (#33)

* ci/cd: configure github actions linting workflow and branch protection

Implement automated linting pipeline (Issue #31):

Phase 1: Create GitHub Actions Workflow
- Create .github/workflows/lint.yml workflow file
- Configure workflow to trigger on PR and push to master
- Set up BUN and Node.js environment
- Run ESLint linting checks
- Generate workflow status checks

Phase 2: Configure Workflow Details
- Implement caching for BUN modules (~bun/install/cache)
- Implement caching for node_modules
- Use frozen lockfile for deterministic builds
- Set 10-minute timeout for workflow
- Configure artifact upload for lint results
- Set Node.js 20.x for best compatibility

Phase 3: Configure Branch Protection
- Require ESLint Code Quality Check to pass before merge
- Require 1+ code review approval
- Dismiss stale pull request reviews
- Block force pushes and branch deletions
- Enforce rules for all users including admins

Phase 4: Documentation & Badge
- Add workflow status badge to README
- Create comprehensive CI/CD Pipeline section in README
- Document workflow triggers, steps, and performance
- Add branch protection rules documentation
- Include PR workflow and troubleshooting guide
- Update AGENTS.md with CI/CD workflow information
- Update Table of Contents with CI/CD link

Features:
- Average execution time: < 2 minutes
- Smart caching minimizes reinstalls
- Deterministic builds with frozen lockfile
- Clear developer workflow guidelines
- Prevents low-quality code from merging

* tools: add create-pr-from-issue.sh tool for automated PR creation

Add new tool to create pull requests directly from GitHub issues:

Features:
- Automatically fetch issue details from GitHub
- Generate branch name from issue title (customizable)
- Create new branch from specified base branch (default: master)
- Auto-generate PR title and description from issue
- Support for draft PRs
- Option to auto-link issue with 'Closes #XXX'
- Custom branch naming with --auto-format
- Use current branch with --no-branch flag
- Comprehensive documentation and examples

The tool streamlines the workflow from issue → branch → PR:
1. Fetches issue details
2. Generates branch name (default: type/issue-NUMBER-title)
3. Creates branch from base branch
4. Generates PR description template from issue body
5. Pushes branch to remote
6. Creates pull request on GitHub

Options:
- --issue <NUMBER>: Issue number (required)
- --branch <NAME>: Custom branch name
- --title <TITLE>: Custom PR title
- --base <BRANCH>: Base branch to merge into (default: master)
- --draft: Create as draft PR
- --auto-format: Auto-format branch name (kebab-case)
- --link-issue: Include 'Closes #issue' in description
- --no-branch: Use current branch instead of creating new one

Documentation:
- Updated tools/README.md with comprehensive documentation
- Added Workflow 6: Create Pull Request from Issue
- Included examples and sample output
- Updated Quick Reference table
- Added to PATH symlink suggestions

---------

Co-authored-by: Eliape, Isaac <IEliape@unum.com>

* tools: enhance create-issue.sh to auto-fill template fields (#34)

* ci/cd: configure github actions linting workflow and branch protection

Implement automated linting pipeline (Issue #31):

Phase 1: Create GitHub Actions Workflow
- Create .github/workflows/lint.yml workflow file
- Configure workflow to trigger on PR and push to master
- Set up BUN and Node.js environment
- Run ESLint linting checks
- Generate workflow status checks

Phase 2: Configure Workflow Details
- Implement caching for BUN modules (~bun/install/cache)
- Implement caching for node_modules
- Use frozen lockfile for deterministic builds
- Set 10-minute timeout for workflow
- Configure artifact upload for lint results
- Set Node.js 20.x for best compatibility

Phase 3: Configure Branch Protection
- Require ESLint Code Quality Check to pass before merge
- Require 1+ code review approval
- Dismiss stale pull request reviews
- Block force pushes and branch deletions
- Enforce rules for all users including admins

Phase 4: Documentation & Badge
- Add workflow status badge to README
- Create comprehensive CI/CD Pipeline section in README
- Document workflow triggers, steps, and performance
- Add branch protection rules documentation
- Include PR workflow and troubleshooting guide
- Update AGENTS.md with CI/CD workflow information
- Update Table of Contents with CI/CD link

Features:
- Average execution time: < 2 minutes
- Smart caching minimizes reinstalls
- Deterministic builds with frozen lockfile
- Clear developer workflow guidelines
- Prevents low-quality code from merging

* tools: add create-pr-from-issue.sh tool for automated PR creation

Add new tool to create pull requests directly from GitHub issues:

Features:
- Automatically fetch issue details from GitHub
- Generate branch name from issue title (customizable)
- Create new branch from specified base branch (default: master)
- Auto-generate PR title and description from issue
- Support for draft PRs
- Option to auto-link issue with 'Closes #XXX'
- Custom branch naming with --auto-format
- Use current branch with --no-branch flag
- Comprehensive documentation and examples

The tool streamlines the workflow from issue → branch → PR:
1. Fetches issue details
2. Generates branch name (default: type/issue-NUMBER-title)
3. Creates branch from base branch
4. Generates PR description template from issue body
5. Pushes branch to remote
6. Creates pull request on GitHub

Options:
- --issue <NUMBER>: Issue number (required)
- --branch <NAME>: Custom branch name
- --title <TITLE>: Custom PR title
- --base <BRANCH>: Base branch to merge into (default: master)
- --draft: Create as draft PR
- --auto-format: Auto-format branch name (kebab-case)
- --link-issue: Include 'Closes #issue' in description
- --no-branch: Use current branch instead of creating new one

Documentation:
- Updated tools/README.md with comprehensive documentation
- Added Workflow 6: Create Pull Request from Issue
- Included examples and sample output
- Updated Quick Reference table
- Added to PATH symlink suggestions

* tools: enhance create-issue.sh to auto-fill template fields with provided data

Add intelligent template field options to fill templates with provided information:

New Options:
- Template field options automatically populate template sections
- Support for all template types: scrum, feature, bug, refactor

Scrum Template Fields:
- --person <ROLE>: User story persona (default: role/persona)
- --action <ACTION>: Desired action (default: action/feature)
- --benefit <BENEFIT>: Expected benefit (default: benefit/value)
- --story-points <POINTS>: Story points (filled in template)

Feature Template Fields:
- --description <TEXT>: Feature description
- --behavior <TEXT>: Expected behavior
- --criteria <TEXT>: Acceptance criteria (comma-separated → checklist)

Bug Template Fields:
- --description <TEXT>: Bug description
- --steps <TEXT>: Reproduction steps (comma-separated → numbered list)
- --behavior <TEXT>: Expected behavior
- --actual <TEXT>: Actual behavior
- --environment <TEXT>: Environment info
- --context <TEXT>: Additional context

Refactor Template Fields:
- --current-state <TEXT>: Current implementation
- --proposed <TEXT>: Proposed changes
- --benefits <TEXT>: Benefits (comma-separated → bullet list)
- --plan <TEXT>: Implementation plan (comma-separated → numbered list)
- --strategy <TEXT>: Testing strategy

Improvements:
- All template data fields now have defaults
- Comma-separated values automatically formatted into lists
- Better documentation with examples
- Uses heredoc for cleaner template generation

Usage Examples:
# Scrum with filled data
./create-issue.sh -t "Add timer feature" --template scrum --story-points 8 \
  --person "user" --action "see typing speed" --benefit "track progress"

# Bug with filled data
./create-issue.sh -t "Login broken" --template bug --priority CRITICAL \
  --description "Button not responding" \
  --steps "1. Go to login,2. Click button,3. Nothing happens" \
  --behavior "Navigate to dashboard" --actual "Page freezes"

# Feature with criteria
./create-issue.sh -t "Dark mode" --template feature \
  --description "Add dark theme" \
  --criteria "Toggle in settings,Persist on reload,Support all components"

Benefits:
- Faster issue creation with pre-filled templates
- Reduced manual data entry
- Consistent format for acceptance criteria and lists
- Better structured issue documentation

---------

Co-authored-by: Eliape, Isaac <IEliape@unum.com>

* fix: resolve ESLint errors in Menu.vue and store.test.ts

---------

Co-authored-by: Eliape, Isaac <IEliape@unum.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant