-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
configurationProject setup and configuration filesProject setup and configuration filesgithub_actionsGitHub .github/ folder configurationGitHub .github/ folder configuration
Milestone
Description
ci(github-actions): add issue and PR templates
| β±οΈ Estimate | π Priority | π Size | π Start | π End |
|---|---|---|---|---|
| 4h | P2 | M | 05-02-2026 | 05-02-2026 |
πΈ Screenshots
| Current | Expected |
|---|---|
| N/A β This change has no visual impact. | N/A β This change has no visual impact. |
π Summary
- Add standardized GitHub issue and PR templates to enforce the project's standard format
- Create 6 issue templates in YAML form format: bug, feature, refactor, build, ci, docs
- Create 1 PR template in markdown format
- Add
config.ymlto disable blank issues and provide a link to the README - Templates ensure consistency for external collaborators and reduce manual corrections
π‘ Why this change?
- No templates exist β contributors must guess the format when opening issues or PRs
- Issues and PRs follow a documented standard (Conventional Commits, metadata table, required sections)
- Without templates, every issue/PR requires manual corrections to match the format
- Templates enforce consistency regardless of who creates the issue or PR
β Benefits
- Guided YAML forms with required fields prevent incomplete or poorly formatted issues
- Auto-assignment and auto-labeling eliminate repetitive manual setup on every new issue
- Contributors follow the project standard without needing to read the format documentation first
- PR template pre-fills all required sections, reducing review corrections
π Steps
Phase 1: Create issue templates
- Create 6 YAML form templates inside
.github/ISSUE_TEMPLATE/ - Create
.github/ISSUE_TEMPLATE/feature.yml(reference implementation, baseline for all others):
name: β¨ Feature
description: New feature or task
title: "feat(scope): "
labels: []
assignees:
- beatrizsmerino
body:
- type: markdown
attributes:
value: |
Thanks for creating this issue! Please fill out the information below.
**Note:** Please write all content in English.
- type: input
id: title
attributes:
label: Title
description: Brief title following conventional commits format
placeholder: "feat(component): add new feature"
validations:
required: true
- type: input
id: time
attributes:
label: β±οΈ Estimated Time
description: "Estimated time to complete (e.g., 1h, 2h, 4h, 1d)"
placeholder: "2h"
validations:
required: true
- type: dropdown
id: priority
attributes:
label: π Priority
options:
- P0
- P1
- P2
- P3
default: 1
validations:
required: true
- type: dropdown
id: size
attributes:
label: π Size
options:
- XS (<1h)
- S (1-2h)
- M (2-4h)
- L (4-8h)
- XL (>8h)
default: 1
validations:
required: true
- type: input
id: start_date
attributes:
label: π
Start Date
description: "DD-MM-YYYY"
placeholder: "05-02-2026"
- type: input
id: end_date
attributes:
label: π
End Date
description: "DD-MM-YYYY"
placeholder: "05-02-2026"
- type: textarea
id: screenshots
attributes:
label: πΈ Screenshots
value: |
| Current | Expected |
| :---: | :---: |
| N/A β This change has no visual impact. | N/A β This change has no visual impact. |
- type: textarea
id: summary
attributes:
label: π Summary
description: Brief summary of what needs to be done (use bullet points)
placeholder: |
- Brief overview of the task
- Key objectives
validations:
required: true
- type: textarea
id: why
attributes:
label: π‘ Why this change?
description: Explain the motivation and reasoning
placeholder: |
- Why this feature is needed
- What problem does it solve
validations:
required: true
- type: textarea
id: steps
attributes:
label: π Steps
description: Implementation steps (use phases and checkboxes)
placeholder: |
### Phase 1: Setup
- [ ] Step 1
- [ ] Step 2
### Phase 2: Implementation
- [ ] Step 3
- [ ] Step 4
validations:
required: true
- type: textarea
id: tests
attributes:
label: π§ͺ Tests
description: How to verify this works correctly
placeholder: |
- [ ] Test scenario 1
- type: textarea
id: notes
attributes:
label: π Notes
description: Additional context (optional)
- type: textarea
id: references
attributes:
label: π References
placeholder: |
### Files to create
- path/to/new-file.ts
### Files to modify
- path/to/existing-file.ts
### Documentation
- https://docs.example.com
### Related Issues
- Related to: #NNN- Create
.github/ISSUE_TEMPLATE/bug.ymlwith these differences fromfeature.yml:name: π Bug Reportdescription: Report a bug or issuetitle: "fix(scope): "labels: [bug]- Title placeholder:
fix(component): resolve layout issue - Replace
π‘ Why this change?withπ‘ Why this bug? - Add 3 fields BEFORE
π Steps:β Current Behavior(textarea, required)β Expected Behavior(textarea, required)π Steps to Reproduce(textarea, required)
- Add
π» Environmentfield afterπ Notes(OS, Browser, Node version)
- Create
.github/ISSUE_TEMPLATE/refactor.ymlwith these differences fromfeature.yml:name: β»οΈ Refactordescription: Refactor or improve code qualitytitle: "refactor(scope): "labels: []- Title placeholder:
refactor(component): improve code structure
- Create
.github/ISSUE_TEMPLATE/build.ymlwith these differences fromfeature.yml:name: π§ Build / Dependenciesdescription: Build system or dependency changestitle: "build(scope): "labels: [dependencies]- Title placeholder:
build(deps): update npm packages - Add
Build Typemulti-select dropdown BEFOREπ Summarywith options:Dependency update,Build configuration,Package scripts,Compiler/bundler settings, Other
- Create
.github/ISSUE_TEMPLATE/ci.ymlwith these differences fromfeature.yml:name: π CI/CDdescription: CI/CD or automation changestitle: "ci(scope): "labels: [github_actions]- Title placeholder:
ci(github-actions): update workflow configuration - Add
CI/CD Typemulti-select dropdown BEFOREπ Summarywith options:GitHub Actions workflow,GitHub configuration,Automation scripts,Deployment pipeline,Testing automation, Other
- Create
.github/ISSUE_TEMPLATE/docs.ymlwith these differences fromfeature.yml:name: π Documentationdescription: Documentation changestitle: "docs(scope): "labels: [documentation]- Title placeholder:
docs(readme): update installation instructions - Add
Documentation Typemulti-select dropdown BEFOREπ Summarywith options:README,Code comments,API documentation,Tutorial/Guide,CHANGELOG, Other
Phase 2: Create config.yml
- Create
.github/ISSUE_TEMPLATE/config.ymlto disable blank issues and add a README link:
blank_issues_enabled: false
contact_links:
- name: README
url: https://github.com/beatrizsmerino/{repo}/blob/master/README.md
about: Check the project documentation for guides and information- Note: The
{repo}placeholder must be replaced with the actual repository name.
Phase 3: Create PR template
- Create
.github/PULL_REQUEST_TEMPLATE/pull_request_template.md:
# type(scope): brief description
| β±οΈ Estimate | π Priority | π Size | π
Start | π
End |
| --- | --- | --- | --- | --- |
| Xh | PX | X | DD-MM-YYYY | DD-MM-YYYY |
## πΈ Screenshots
| Current | Expected |
| :---: | :---: |
| N/A β This change has no visual impact. | N/A β This change has no visual impact. |
## π Type of Change
- [ ] Bug fix
- [ ] Breaking change
- [ ] Dependency
- [ ] New feature
- [ ] Improvement
- [ ] Configuration
- [ ] Documentation
- [ ] CI/CD
## π Summary
## π Changes Made
## π§ͺ Tests
- [ ] Run tests and verify they pass
- [ ] Perform manual verification
## π Notes
## π References
### Related Issues
- Closes #
### Related PRsπ§ͺ Tests
- Open "New Issue" and verify all 6 templates appear
- Verify blank issues are disabled (no "Open a blank issue" option)
- Create a test issue with each template and verify fields render correctly
- Open "New Pull Request" and verify the PR template auto-fills
- Verify labels are auto-assigned when selecting a template with labels
- Verify
beatrizsmerinois auto-assigned - Verify the
config.ymlREADME link points to the correct repo URL - Verify functionality works as expected
π Notes
Template overview
All templates share a common structure with these fields:
| File | Name | Description | Labels | Title Prefix | Unique Fields |
|---|---|---|---|---|---|
bug.yml |
π Bug Report | Report a bug or issue | bug |
fix(scope): |
Current Behavior, Expected Behavior, Steps to Reproduce, Environment |
feature.yml |
β¨ Feature | New feature or task | (none) | feat(scope): |
(common fields only) |
refactor.yml |
β»οΈ Refactor | Refactor or improve code quality | (none) | refactor(scope): |
(common fields only) |
build.yml |
π§ Build / Dependencies | Build system or dependency changes | dependencies |
build(scope): |
Build Type dropdown |
ci.yml |
π CI/CD | CI/CD or automation changes | github_actions |
ci(scope): |
CI/CD Type dropdown |
docs.yml |
π Documentation | Documentation changes | documentation |
docs(scope): |
Documentation Type dropdown |
Common YAML structure
All templates share this field order:
# Common fields (all templates)
assignees:
- beatrizsmerino
body:
# 1. Markdown header (instructions + "write in English" note)
# 2. Title input (conventional commits)
# 3. β±οΈ Estimated Time input
# 4. π Priority dropdown (P0 Critical, P1 High, P2 Medium, P3 Low)
# 5. π Size dropdown (XS <1h, S 1-2h, M 2-4h, L 4-8h, XL >8h)
# 6. π
Start Date input (DD-MM-YYYY)
# 7. π
End Date input (DD-MM-YYYY)
# 8. πΈ Screenshots textarea (pre-filled with Current|Expected table)
# 9. π Summary textarea (required)
# 10. π‘ Why this change? / Why this bug? textarea (required)
# 11. π Steps textarea (required, phases + checkboxes)
# 12. π§ͺ Tests textarea
# 13. π Notes textarea (optional)
# 14. π References textarea (ordered subsections)π References
Files to create
.github/ISSUE_TEMPLATE/bug.yml.github/ISSUE_TEMPLATE/build.yml.github/ISSUE_TEMPLATE/ci.yml.github/ISSUE_TEMPLATE/docs.yml.github/ISSUE_TEMPLATE/feature.yml.github/ISSUE_TEMPLATE/refactor.yml.github/ISSUE_TEMPLATE/config.yml.github/PULL_REQUEST_TEMPLATE/pull_request_template.md
Documentation
- https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
- https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository
- https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
configurationProject setup and configuration filesProject setup and configuration filesgithub_actionsGitHub .github/ folder configurationGitHub .github/ folder configuration