# Changelog of GitHub Repository Search Scraper: Stars, Topics, Licenses (`rowcraft/github-repo-search-scraper`) Actor

- **URL**: https://apify.com/rowcraft/github-repo-search-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/rowcraft/github-repo-search-scraper.md

## Changelog

### 1.0.4 (2026-11-03)

- Dataset schema: every optional field accepts an empty value, so a record with an empty optional field (for example no postal code) no longer stops the run.

### 1.0.3 (2026-11-03)

- README: public examples list refreshed

### 1.0.2 (2026-10-26)

- README: links to the public examples.

### 1.0.1 (2026-10-26)

- README: real Console screenshots and three public examples; first public release.

### 1.0.0 (2026-10-26)

- First release: GitHub repository search through the official REST API (`GET /search/repositories`), one row per repository with 32 fields: id, full name, name, URL, description, homepage, owner type, organization owner, language, topics, SPDX license, stars, forks, watchers, open issues, archived / fork / template flags, default branch, size, creation, update and push times, visibility, feature flags, the query that found it and the read time.
- Two modes: `search` (your queries in GitHub syntax, with the plain filters added as qualifiers) and `recent` (repositories created, or pushed to, in the last N days, ordered by stars).
- Filters: language, minimum stars, topics, license, created after, pushed after, archived and forks left out by default; sort by stars, forks, last update or best match. A qualifier already in a query wins over the matching setting, and the run summary says so.
- Up to 1,000 results per query (GitHub's limit, 10 pages of 100), stated in the input form, the README, `COVERAGE` and a warning when a query matches more.
- Optional token of the customer's own GitHub account (`githubToken`, secret): 30 searches a minute and 5,000 detail requests an hour instead of 10 and 60. The actor waits 6.5 s between searches without a token and 2.1 s with one, reads the rate-limit headers after every answer and waits for a reset that fits in the run (up to five minutes); otherwise it stops with what it has and says so.
- Optional detail request per delivered repository (`fetchDetails`) for the real number of watchers (`subscribers`) and the fork network size (`networkCount`); when the hourly limit runs out the remaining rows are delivered without them.
- No persons: the owner is delivered only when it is an organization; the login, id, avatar and links of a user account are never copied. E-mail addresses and phone numbers in descriptions are masked. Contributors, commit authors and followers are never requested.
- The API host's robots.txt is read first and obeyed; redirects are not followed; 403 and 429 are reported and never charged; a stop after three failed requests in a row.
- `COVERAGE` per query and `RUN_SUMMARY` with the totals, the searches sent, the rate-limit numbers GitHub reported and why the run stopped.
- Standard Rowcraft automation: `countOnly` (matching repositories per query and the estimated cost, free), `onlyNew` and `stateName`, end-of-run notification (`notifyUrl`), charge cap respected, stop with the summary saved 90 seconds before the run timeout. Runs in 256 MB.
