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]

Reply via email to