Problem
The scheduled OpenAPI drift workflow computes a fresh report each day, but discards it whenever any open issue has the openapi-drift label.
On August 6, 2026, the workflow found 12 actionable gaps and created #372. By August 13, it found 86 actionable gaps, then logged:
Open drift issue(s) already exist (#372); skipping.
The workflow exits successfully and neither updates nor comments on the existing issue. As a result, #372 still describes only the original 12 gaps and the additional drift is not visible outside the workflow logs.
The behavior is in scripts/check-openapi-drift.py: the report is generated before open_drift_issues() is called, but the generated body is discarded when that call returns an open issue.
Desired behavior
Keep a single open drift issue synchronized with the latest analyzer report instead of skipping new results. The issue should expose the current count and complete current findings without requiring readers to inspect workflow logs. Avoid posting duplicate updates when the report has not changed.
When the analyzer reports no actionable drift, resolve the existing automated issue or otherwise make it clear that the reported drift is no longer current.
Acceptance criteria
- A new drift report creates an issue when no open drift issue exists.
- A changed drift report updates the existing issue with the latest count and findings.
- An unchanged report does not create notification noise.
- A clean report resolves or clearly supersedes the existing automated issue.
- Tests cover create, update, unchanged, and clean-report behavior.
Related: #372
Problem
The scheduled OpenAPI drift workflow computes a fresh report each day, but discards it whenever any open issue has the
openapi-driftlabel.On August 6, 2026, the workflow found 12 actionable gaps and created #372. By August 13, it found 86 actionable gaps, then logged:
The workflow exits successfully and neither updates nor comments on the existing issue. As a result, #372 still describes only the original 12 gaps and the additional drift is not visible outside the workflow logs.
The behavior is in
scripts/check-openapi-drift.py: the report is generated beforeopen_drift_issues()is called, but the generated body is discarded when that call returns an open issue.Desired behavior
Keep a single open drift issue synchronized with the latest analyzer report instead of skipping new results. The issue should expose the current count and complete current findings without requiring readers to inspect workflow logs. Avoid posting duplicate updates when the report has not changed.
When the analyzer reports no actionable drift, resolve the existing automated issue or otherwise make it clear that the reported drift is no longer current.
Acceptance criteria
Related: #372