refactor: Phase 4.6 — consolidate issue-remediation-bulk + issue-health-audit into issue-audit-remediation - #2509
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The new workflow embeds JSON into JavaScript string literals in multiple steps, which can break on common issue content (e.g. apostrophes) and cause the workflow to fail.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Consolidates two overlapping issue-maintenance workflows into a single, mode-driven workflow to reduce duplicated logic and API calls as part of the workflows consolidation initiative.
Changes:
- Added
.github/workflows/issue-audit-remediation.yml, combining “audit” and “remediate” behaviours behind amodeinput plus the existing weekly schedule. - Removed redundant workflows:
issue-remediation-bulk.ymlandissue-health-audit.yml. - Added a changelog entry documenting the consolidation (net −1 workflow).
File summaries
| File | Description |
|---|---|
| CHANGELOG.md | Documents the Phase 4.6 consolidation and workflow removal. |
| .github/workflows/issue-audit-remediation.yml | New consolidated workflow with audit, remediate, and full modes plus weekly schedule. |
| .github/workflows/issue-remediation-bulk.yml | Deleted in favour of the consolidated workflow. |
| .github/workflows/issue-health-audit.yml | Deleted in favour of the consolidated workflow. |
Review details
Suppressed comments (1)
.github/workflows/issue-audit-remediation.yml:419
- Same JSON-embedding issue as above:
JSON.parse('${{ steps.fetch.outputs.issues }}')will break if any issue fields contain a single quote. Read the JSON from an env var to avoid invalid JS and intermittent workflow failures.
const issues = JSON.parse('${{ steps.fetch.outputs.issues }}');
const dryRun = '${{ inputs.dry_run || 'true' }}' === 'true';
- Files reviewed: 4/4 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
🔍 Reviewer Summary for PR #2509CI Status: ❌ Recommendations
|
|
🚫 This PR description is missing required template content. Missing required section(s): Global DoD checklist Please update the PR body using one of the repository PR templates:
Empty placeholders, unchecked checklist boxes, and stub issue references do not count. |
🔍 Reviewer Summary for PR #2509CI Status: ❌ Recommendations
|
🔍 Reviewer Summary for PR #2509CI Status: ❌ Recommendations
|
|
This PR's branch name Standard pattern: Based on linked issue type: Correct template should be: No action required — this is informational. Future PRs should use the correct branch name. See Branching Strategy for more info. |
❌ Branch Name Validation FailedThe branch name Required Format
Allowed Branch Types
Valid Examples
Invalid Examples
SolutionRename your branch to follow the pattern and update the PR. For more information, see docs/BRANCHING_STRATEGY.md. |
|
@copilot resolve the merge conflicts in this pull request |
|
@Mergifyio queue |
Merge Queue Status
Waiting for
All conditions
|
Head branch was pushed to by a user without write access
Resolved. I merged |
🔍 Reviewer Summary for PR #2509CI Status: ❌ Recommendations
|
d20743c to
5050c66
Compare
…o issue-audit-remediation (#1411) Co-authored-by: ashleyshaw <1805352+ashleyshaw@users.noreply.github.com>
Co-authored-by: ashleyshaw <1805352+ashleyshaw@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Ash Shaw <ashley@lightspeedwp.agency>
5050c66 to
56960ec
Compare
🔍 Reviewer Summary for PR #2509CI Status: ❌ Recommendations
|
1 similar comment
🔍 Reviewer Summary for PR #2509CI Status: ❌ Recommendations
|
|
✅ PR checklists finalised after merge. |
Two workflows (
issue-remediation-bulk.yml,issue-health-audit.yml) both applied missingtype:/priority:labels to open issues, creating redundant API calls and inconsistent behaviour when both fired. Part of epic #1227 — Workflows Consolidation Initiative. Net: −1 workflow.Linked issues
Relates to #1227
Summary
Merged both workflows into
.github/workflows/issue-audit-remediation.ymlwith three explicit operation modes. All existing behaviour is preserved; no logic changes.New workflow modes (
workflow_dispatch+ weekly schedule):audit— reopens closed issues with unchecked DoD items; optionally applies missing type/priority labels (audit_fix_labelsinput, defaulttrue)remediate— scoped to last N days: assigns milestones, adds missing type labels, posts remediation checklists, triggerslabeling.ymlfull(default) — runs both jobsKey design decisions:
auditjob only (preserving originalissue-health-audit.ymlbehaviour)dry_rundefaults totrueacross all modes for safe first runsaudit_fix_labelsinput guards label-fixing in audit mode somode: auditdoes not silently modify labels when only DoD reopen is intendedremediatejob skips onscheduletrigger (explicit dispatch only)Safety Nets
Approach
ifguards per jobissue-remediation-bulk.ymlandissue-health-audit.ymlMetrics / Benchmarks (if applicable)
Verification
Risk & Rollback
Changelog
Removed
issue-remediation-bulk.ymlandissue-health-audit.ymlintoissue-audit-remediation.ymlwithaudit,remediate, andfullmodes. Weekly Monday 08:00 UTC schedule preserved. Dry-run defaults totrueacross all modes. Net: −1 workflow.Checklist (Global DoD / PR)