GitHub releases

GitHub release, tag, and changelog watches for public repositories

This Actor monitors public GitHub repositories for new releases, tags, and optional changelog pages, then emits summary-first rows with diffs when surfaces change. Live input is repositories[] with repo plus modes — README examples that send repos/semverFilter are not schema fields.

Not a private-registry or private-repo scanner. Not npm/PyPI package intelligence. Public GitHub HTTP only.

from $8.00 / 1,000 delivered monitoring result rows ($0.008 per new or changed row). No Actor Start. Unchanged runs are free.

Open GitHub Release & Tag Scraper on Apify

GitHub Release & Tag Scraper, not a neighboring Actor

Use this page for this Actor’s job. Use Website Content Extractor for One-shot page markdown; Use Status Page Incident Digest Monitor for Vendor incidents.

This Actor Website Content Extractor Status Page Incident Digest Monitor
Intent GitHub Release & Tag Scraper One-shot page markdown Vendor incidents
Primary input repositories urls status pages
What it reads Public sources listed on the Store page HTML status sites
Primary output Dataset rows billed per live PPE markdown incident rows
Not this job Not a private-registry or private-repo scanner. Not npm/PyPI package intelligence. Public GitHub HTTP only. Not GitHub release diffs Not GitHub tags/releases

Store ID: taroyamada/github-release-monitor. Respect source terms, robots.txt, and rate limits.

Use cases

How is GitHub Release & Tag Scraper different from Website Content Extractor and Status Page Incident Digest Monitor?

GitHub Release & Tag Scraper (taroyamada/github-release-monitor): This Actor monitors public GitHub repositories for new releases, tags, and optional changelog pages, then emits summary-first rows with diffs when surfaces change. Live input is repositories[] with repo plus modes — README examples that send repos/semverFilter are not schema fields. Not a private-registry or private-repo scanner. Not npm/PyPI package intelligence. Public GitHub HTTP only. Website Content Extractor is for One-shot page markdown (input urls; HTML; markdown). Not GitHub release diffs. Status Page Incident Digest Monitor is for Vendor incidents (input status pages; status sites; incident rows). Not GitHub tags/releases.

What input is required?

Live required fields: repositories. exampleRunInput watches apify/crawlee (releases+tags) and axios/axios (releases+tags+changelog). Keep snapshotKey stable. datasetMode default changes_only. delivery enum includes unused email placeholder.

Field Type Default Notes
repositories array required empty Repositories (one summary row each). List of repositories to monitor. Each item supports id, name, repo, criticality, owner, tags, modes, releaseUrl, releaseNotesUrl, tagsUrl, changelogUrl, and optional surfaces overr…
requestTimeoutSeconds integer 30 Request timeout (seconds). HTTP request timeout per monitored source.
userAgent string empty Custom User-Agent. Optional User-Agent header for upstream requests.
maxChars integer 35000 Global max chars per source. Upper bound for extracted text per monitored source.
delivery string dataset Delivery mode. Where to send summary-first repository results.
datasetMode string changes_only Dataset mode. Choose every repository row, only changed rows, or only action-needed rows.
webhookUrl string empty Webhook URL. Required when delivery is webhook.
notifyOnNoChange boolean false Notify even if no change. When false, webhook delivery skips when there are no changed or action-needed repository summaries.
snapshotKey string github-release-monitor-snapshots Snapshot key. Key used for recurring snapshot persistence. Keep it stable so release and changelog drift stays comparable over time.
diffMode string line_summary Diff mode. Choose between line-level change summaries for reviewer context or hash-only detection when you only need alerting.
summaryMaxLines integer 12 Max diff lines per source. Maximum added and removed lines retained in each source change summary.
concurrency integer 2 Concurrency. Maximum number of monitored sources processed in parallel.
batchDelayMs integer 250 Inter-batch delay (ms). Delay between processing batches to reduce rate-limit pressure.
nowIso string empty Override current time (ISO). Optional deterministic timestamp override.
dryRun boolean false Dry run. Skip snapshot persistence and side-effect delivery.

Published Store example run input (omitted fields take schema defaults):

{
  "repositories": [
    {
      "id": "apify-crawlee",
      "name": "Apify Crawlee",
      "repo": "apify/crawlee",
      "criticality": "high",
      "owner": "Platform",
      "tags": [
        "crawler",
        "sdk"
      ],
      "modes": [
        "releases",
        "tags"
      ]
    },
    {
      "id": "axios",
      "name": "Axios",
      "repo": "axios/axios",
      "criticality": "standard",
      "owner": "Developer Experience",
      "tags": [
        "dependency",
        "http-client"
      ],
      "modes": [
        "releases",
        "tags",
        "changelog"
      ],
      "changelogUrl": "https://raw.githubusercontent.com/axios/axios/v1.x/CHANGELOG.md"
    }
  ],
  "delivery": "dataset",
  "datasetMode": "changes_only",
  "notifyOnNoChange": false,
  "snapshotKey": "github-release-monitor-quickstart",
  "diffMode": "line_summary",
  "summaryMaxLines": 12,
  "concurrency": 2,
  "batchDelayMs": 250,
  "dryRun": false
}

Run GitHub Release & Tag Scraper on Apify

How do dataset, webhook, and dry-run delivery work?

delivery defaults to dataset on the live schema. Dataset output is the billable surface when rows are written. webhookUrl is used when delivery is webhook (and typically not during dryRun). dryRun true validates or samples without the usual dataset/webhook side effects described on the Store schema. datasetMode can limit emits to changes_only versus all. Unchanged runs that write zero default-dataset rows typically charge $0.00 on current PPE.

What does a result contain?

Published README Output Example / Sample Output JSON.

{
  "repositoryId": "axios",
  "repositoryName": "Axios",
  "repo": "axios/axios",
  "status": "changed",
  "severity": "high",
  "signals": [
    "action_required",
    "deprecation"
  ],
  "recommendedActions": [
    "Review the latest GitHub release notes with Platform and decide whether upgrade, regression-test, or compatibility work is needed.",
    "Read the changelog diff and extract migration, configuration, or rollout work for Platform."
  ],
  "repositorySummary": {
    "changedSurfaces": [
      "releases",
      "changelog"
    ],
    "actionNeeded": true
  }
}

There is no published output JSON schema on the Store page.

How is GitHub Release & Tag Scraper priced?

Billing is pay per event. The live Store card is from $8.00 / 1,000 delivered monitoring result rows ($0.008 per new or changed row). No Actor Start. Unchanged runs are free. Current PPE:

Event Price Emitted when
apify-default-dataset-item (Delivered monitoring result row) $0.008 Charged only when a new or changed monitoring result row is delivered. Unchanged runs are free.

The published README Cost block is stale versus the live Store pricing tab. README Cost quotes actor-start $0.01 + dataset-item $0.003. Live: Delivered monitoring result row $0.008, no start. README extra examples use repos/includeTags/semverFilter which are not live fields. This page quotes live PPE only.

from $8.00 / 1,000 delivered monitoring result rows ($0.008 per new or changed row). No Actor Start. Unchanged runs are free.

See GitHub Release & Tag Scraper pricing on Apify

Limits to keep in mind

Open GitHub Release & Tag Scraper on Apify

Related pages