GitHub Release Tracker avatar

GitHub Release Tracker

Pricing

from $8.00 / 1,000 results

Go to Apify Store
GitHub Release Tracker

GitHub Release Tracker

Monitor GitHub repositories and scrape release notes, tags, and changelogs to integrate version updates into Slack or Opsgenie via automated runs.

Pricing

from $8.00 / 1,000 results

Rating

0.0

(0)

Developer

太郎 山田

太郎 山田

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

GitHub Release & Changelog Monitor API

Track GitHub releases, tags, release notes, and changelog drift over time with one summary-first repository row per repo.

Store Quickstart

  • Start with store-input.example.json for a reliable first run across two public repositories.
  • If the output fits your workflow, switch to store-input.templates.json and choose one of:
    • Quickstart (2 repos, dataset) for first success
    • Recurring Team Watchlist for a recurring internal release watch lane
    • Webhook Release Digest when Slack, ticketing, or internal automation should receive only routed release summaries

Key Features

  • 🛠️ Developer-focused — CLI-ready JSON output for piping into build/CI tooling
  • Fast parallel scanning — Concurrent fetches with backoff for high-throughput audits
  • 📊 Changelog-aware — Detects version bumps, new releases, and deprecations between runs
  • 🔔 Alert integrations — Webhook delivery to Slack/PagerDuty/Opsgenie for on-call visibility
  • 🔒 Zero-credentials — Uses only public data — no package-registry API keys required

Use Cases

WhoWhy
DevelopersAutomate recurring data fetches without building custom scrapers
Data teamsPipe structured output into analytics warehouses
Ops teamsMonitor changes via webhook alerts
Product managersTrack competitor/market signals without engineering time

Input

FieldTypeDefaultDescription
repositoriesarrayprefilledList of repositories to monitor. Each item supports id, name, repo, criticality, owner, tags, modes, releaseUrl, release
requestTimeoutSecondsinteger30HTTP request timeout per monitored source.
userAgentstringOptional User-Agent header for upstream requests.
maxCharsinteger35000Upper bound for extracted text per monitored source.
deliverystring"dataset"Where to send summary-first repository results.
datasetModestring"changes_only"Choose every repository row, only changed rows, or only action-needed rows.
webhookUrlstringRequired when delivery is webhook.
notifyOnNoChangebooleanfalseWhen false, webhook delivery skips when there are no changed or action-needed repository summaries.

Input Example

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

Output

FieldTypeDescription
metaobject
recurringDigestobject
actionNeededarray
resultsarray
actionNeeded[].repositoryIdstring
actionNeeded[].repositoryNamestring
actionNeeded[].repostring
actionNeeded[].ownerstring
actionNeeded[].severitystring
actionNeeded[].statusstring
actionNeeded[].reasonstring
actionNeeded[].changedSurfacesarray
actionNeeded[].signalsarray
actionNeeded[].recommendedActionsarray
actionNeeded[].executiveSummarystring

Output Example

{
"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
}
}

API Usage

Run this actor programmatically using the Apify API. Replace YOUR_API_TOKEN with your token from Apify Console → Settings → Integrations.

cURL

curl -X POST "https://api.apify.com/v2/acts/taroyamada~github-release-monitor/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "repositories": [ { "id": "axios", "name": "Axios", "repo": "axios/axios", "criticality": "high", "owner": "Platform", "tags": ["sdk", "http-client"], "modes": ["releases", "tags", "changelog"], "changelogUrl": "https://raw.githubusercontent.com/axios/axios/v1.x/CHANGELOG.md" }, { "id": "apify-crawlee", "name": "Apify Crawlee", "repo": "apify/crawlee", "criticality": "standard", "owner": "Automation", "modes": ["releases", "tags"] } ], "delivery": "dataset", "datasetMode": "changes_only", "snapshotKey": "github-release-monitor-team-watchlist", "diffMode": "line_summary", "summaryMaxLines": 12, "concurrency": 2 }'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("taroyamada/github-release-monitor").call(run_input={
"repositories": [
{
"id": "axios",
"name": "Axios",
"repo": "axios/axios",
"criticality": "high",
"owner": "Platform",
"tags": ["sdk", "http-client"],
"modes": ["releases", "tags", "changelog"],
"changelogUrl": "https://raw.githubusercontent.com/axios/axios/v1.x/CHANGELOG.md"
},
{
"id": "apify-crawlee",
"name": "Apify Crawlee",
"repo": "apify/crawlee",
"criticality": "standard",
"owner": "Automation",
"modes": ["releases", "tags"]
}
],
"delivery": "dataset",
"datasetMode": "changes_only",
"snapshotKey": "github-release-monitor-team-watchlist",
"diffMode": "line_summary",
"summaryMaxLines": 12,
"concurrency": 2
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('taroyamada/github-release-monitor').call({
"repositories": [
{
"id": "axios",
"name": "Axios",
"repo": "axios/axios",
"criticality": "high",
"owner": "Platform",
"tags": ["sdk", "http-client"],
"modes": ["releases", "tags", "changelog"],
"changelogUrl": "https://raw.githubusercontent.com/axios/axios/v1.x/CHANGELOG.md"
},
{
"id": "apify-crawlee",
"name": "Apify Crawlee",
"repo": "apify/crawlee",
"criticality": "standard",
"owner": "Automation",
"modes": ["releases", "tags"]
}
],
"delivery": "dataset",
"datasetMode": "changes_only",
"snapshotKey": "github-release-monitor-team-watchlist",
"diffMode": "line_summary",
"summaryMaxLines": 12,
"concurrency": 2
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Tips & Limitations

  • Run nightly as part of your supply-chain monitoring to catch new vulnerabilities early.
  • Pair with oss-vulnerability-monitor for CVE coverage layered on top of version tracking.
  • For monorepos, run per-package rather than recursing — easier to triage alerts by team owner.
  • Use snapshotKey to persist between runs and only alert on diffs.
  • Webhook delivery supports JSON payloads — pipe into your existing on-call routing.

FAQ

Is my build slowed down?

This actor runs on Apify infrastructure, not your CI runners. No impact on build times.

What's the freshness of data?

Depends on the source registry — typically 5–60 minutes behind upstream.

Can I filter by package ecosystem?

Yes — most DevOps actors accept an ecosystem or package-manager filter in their input schema.

Does this work with private registries?

No — this actor targets public registries (npm, PyPI, crates.io, etc.). Private registries require credential handling that's out of scope.

Can I integrate with GitHub Actions?

Yes — call this actor via Apify API inside a workflow job, parse the JSON output, and fail the build on threshold violations.

DevOps & Tech Intel cluster — explore related Apify tools:

Cost

Pay Per Event:

  • actor-start: $0.01 (flat fee per run)
  • dataset-item: $0.003 per output item

Example: 1,000 items = $0.01 + (1,000 × $0.003) = $3.01

No subscription required — you only pay for what you use.