Align no-op tracker expiry with maintenance workflow generation#37965
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
🧠 Matt Pocock Skills Reviewer failed during the skills-based review. |
|
|
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. No ADR enforcement needed: PR #37965 does not have the 'implementation' label and has only 61 new lines of code in business logic directories (≤100 threshold). |
|
🧪 Test Quality Sentinel completed test quality analysis. |
There was a problem hiding this comment.
Pull request overview
This PR aligns maintenance workflow generation with the runtime behavior of no-op tracker issue expiry by treating safe-outputs.noop.report-as-issue (including its default-enabled behavior) as an expiry source during compile-time scanning.
Changes:
- Added centralized
isNoOpReportAsIssueEnabled(*string) boollogic and a 30-day default no-op issue expiry constant (in hours). - Updated
scanWorkflowsForExpiresto flag expiry when no-op issue reporting is enabled and to factor its 30-day window intominExpires. - Expanded maintenance workflow tests to cover no-op default/true/false behavior for workflow generation.
Show a summary per file
| File | Description |
|---|---|
| pkg/workflow/maintenance_workflow.go | Detects enabled no-op report-as-issue as an expiry source (30-day window) when deciding whether to generate maintenance workflows. |
| pkg/workflow/maintenance_workflow_test.go | Adds test cases verifying maintenance workflow generation behavior for default/explicit no-op report-as-issue settings. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 2/2 changed files
- Comments generated: 0
|
@copilot run pr-finisher skill |
🧪 Test Quality Sentinel Report✅ Test Quality Score: 80/100 — Excellent
📊 Metrics & Test Classification (3 tests analyzed)
Test Classification Details
Language SupportTests analyzed:
Verdict
📖 Understanding Test ClassificationsDesign Tests (High Value) verify what the system does:
Implementation Tests (Low Value) verify how the system does it:
Goal: Shift toward tests that describe the system's behavioral contract — the promises it makes to its users and collaborators. References: §27173437921
|
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done in I ran the pr-finisher pass, fixed the actionable failure ( Since agent pushes don’t retrigger CI, checks on this new HEAD need a maintainer re-trigger. |
No-op tracker issues are stamped at runtime with a 30-day expiry, but maintenance workflow generation previously ignored that path unless an explicit
expires:existed elsewhere. This change makes compile-time expiry detection account forsafe-outputs.noop.report-as-issue(including default-enabled behavior), so stamped no-op expirations are actually enforced.Expiry source parity (runtime ↔ compile-time)
scanWorkflowsForExpiresto treat no-op issue reporting as an expiry source.true), it contributes a 30-day expiry window (24 * 30hours), matching the runtime footer behavior.No-op report-as-issue semantics
isNoOpReportAsIssueEnabled(*string) boolto centralize the enablement rule:nil=> enabled (default)"false"(case-insensitive, trimmed) => disabledFocused maintenance workflow coverage
report-as-issue) => maintenance workflow generatedreport-as-issue: true=> maintenance workflow generatedreport-as-issue: false=> maintenance workflow not generated