# Changelog of GitHub Archive Events Scraper — Historical GH Events by Date (`logiover/github-archive-events-scraper`) Actor

- **URL**: https://apify.com/logiover/github-archive-events-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/logiover/github-archive-events-scraper.md

## Changelog

### 2026-09-01

- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.
- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.
- No change to input, output fields or scraping logic.

### 2026-08-11

- Maintenance release: refreshed the build and dependencies.
- Re-verified live execution, non-empty structured output and dataset field/type integrity.
- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.

### 2026-08-01

- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
- Replaced the field-level output schema with a canonical `results` dataset link so run results open correctly in the Apify Console.
- Declared 26 common and event-specific dataset fields so the output contract covers every field emitted by the mapper and referenced by the table view.
- Stopped fabricating `commitCount: 0` when newer GH Archive PushEvent payloads omit both counts and commit arrays; retained real counts and messages for historical payloads that contain them.
- Added targeted historical event variations for issue/comment and push/ref/fork/release field coverage, and documented archive-era payload variability.

### 2026-07-22

- Initial release.
- Streams gzip-compressed hourly archive files from GH Archive (`data.gharchive.org/YYYY-MM-DD-H.json.gz`).
- Gunzips and parses newline-delimited JSON line by line — no whole-file buffering, so huge windows run in ~1 GB of memory.
- Flattens every public GitHub event (PushEvent, WatchEvent, ForkEvent, PullRequestEvent, IssuesEvent, ReleaseEvent, CreateEvent, comments, etc.) into tidy rows.
- Filters by event type, repository (case-insensitive substring), actor login and organization; global `maxItems` cap; per-run dedupe by event ID.
- Graceful handling of not-yet-published hours (404 skip), truncated/corrupt gzip tails (partial-success), and transient 5xx/429/403 (fresh-IP retry with exponential backoff).
