# GitHub Repository Change Monitor - Stars, Forks & Activity

Monitor public GitHub repositories for changes in stars, forks and repository metadata. Keep timestamped comparisons and source links for a reusable project watchlist.

Canonical product page: https://mayd-it.com/data-tools/actors/github-repository-change-monitor/

## Example input

```json
{
  "repositories": [
    "apify/crawlee"
  ]
}
```

## Full guide

# GitHub Repository Change Monitor

Turn a public repository watchlist into a clear record of what changed: stars, forks, open issues plus pull requests, archive status, default branch and declared metadata.

## First useful result

1. Paste `owner/repository` names or GitHub repository URLs.
2. Start with the small default watchlist. No token, login, browser or proxy is needed.
3. Open **Repository observations** for export, or **Readable run report** for coverage and diagnostics.

```json
{"repositories":["apify/crawlee"],"maxResults":5}
```

## What makes the output useful

| Your question | Fields to use |
|---|---|
| What changed since my last saved check? | `comparisonStatus`, `changedFields`, `previousObservedAt` |
| How did visible popularity counters move? | `starsChange`, `forksChange`, `observationIntervalHours` |
| Did a project become archived or disabled? | `archived`, `disabled`, saved previous values |
| What can I verify? | Stable `repositoryId`, GitHub link, API `sourceUrl`, `observedAt` |

The first comparison run establishes a baseline. Changes are differences between **your saved observations**. They are not historical daily growth, unique developers, product adoption, revenue or a project-quality score.

## Three ready-to-run examples

**Crawlee**
```json
{"repositories":["apify/crawlee"]}
```
**Playwright**
```json
{"repositories":["https://github.com/microsoft/playwright"]}
```
**Next.js**
```json
{"repositories":["vercel/next.js"]}
```

## Scheduled monitoring

Run the same watchlist with `comparePrevious: true` and a consistent `snapshotName`. Add `onlyChanges: true` to omit unchanged rows. An unchanged run can successfully save zero rows. Schedule one writer per snapshot. Only confirmed saved records advance history; unavailable repositories are never inferred to be deleted. A smaller result cap leaves later repositories unprocessed, which is shown as partial coverage.

```json
{"repositories":["apify/crawlee"],"comparePrevious":true,"onlyChanges":true,"snapshotName":"crawlee-weekly"}
```

## Output and source meaning

One row represents one requested public repository at observation time. `stars`, `forks`, `subscribers` and `openIssuesAndPullRequests` are GitHub counters. The last field includes pull requests; it is not an unresolved-bug count. `licenseSpdx` is GitHub's detected license identifier; `NOASSERTION` or null does not establish license rights. `pushedAt` is a repository push timestamp, not a release date. Missing optional metadata remains null.

JSON, CSV and Excel exports are available through the dataset. SUMMARY and RUN_REPORT are diagnostic storage records, never fake dataset rows.

## Limits, quota and cost

- Public metadata only, at most ten unique repositories and one bounded API request per repository. No source-code download, user scraping, search or private repository access.
- GitHub's unauthenticated REST quota is normally **60 requests per IP per hour** and may be shared with other activity. A quota refusal ends further source requests and is reported honestly. No IP rotation or fallback bypass.
- Responses are capped at 1 MiB and requests at15 seconds within the remaining run budget. The default budget is60 seconds; the platform timeout can end it sooner.
- Base pricing is **$0.001 per saved repository observation** plus **$0.00005 per run start**. The Store pricing panel and your run charge limit govern actual charges.

Source reference: [GitHub repository REST API](https://docs.github.com/en/rest/repos/repos#get-a-repository) and [GitHub rate limits](https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api). GitHub is the data source; this independent tool is not an official GitHub product.

## Support

Open an Actor issue with the repository name, run ID and expected field. Never include credentials. Missing projects, private projects, quota limits and source outages are reported in the run report.
