potiuk opened a new pull request, #448:
URL: https://github.com/apache/airflow-steward/pull/448
The `security-tracker-stats-dashboard` produced snapshots that no longer
matched the tracker's current state. Three independent causes:
1. **`render.py` hard-coded `NOW`** to `2026-05-21`, freezing every snapshot
at that date so the latest bucket and all "as of now" classifications
lagged reality. Now uses `datetime.now(timezone.utc)`.
2. **`render.py` `labels_open_at` derived `is_open` only from replayed
`closed`/`reopened` events.** GitHub's issue-events API omits the `closed`
event for some (often older) issues, leaving them stuck "open" and
miscounted (e.g. as open-untriaged). It now backstops `is_open` with the
authoritative `closedAt` from the issue payload — the same field the
`cum_closed` series already trusts.
3. **`fetch_events.py` never refreshed cached event files** (it returned
`cached` whenever the file existed), so an issue relabeled/closed after
its events were first fetched kept stale history across runs. It now
re-fetches when the cached file is older than the issue's `updatedAt`.
Together these made the dashboard, for example, report trackers as untriaged
that had since been triaged, and closed trackers as still open.
### Test plan
- [x] `render.py` against a warm cache reports `now: <today>` and classifies
open issues by their current labels (untriaged count matches the live
`needs triage` / scope-label state).
- [x] `fetch_events.py` re-fetches an event cache whose mtime predates the
issue's `updatedAt` (verified by back-dating a cache file).
Generated-by: Claude Opus 4.8 (1M context)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]