GitHub Release
Pricing
$0.01 / 1,000 releases
GitHub Release
Analyze public GitHub releases or supplied release records. Get structured data for tags, notes, assets, dates, download counts, repository context, version movement, and risk signals. Compare current and earlier sets to find new or changed notes and assets.
Pricing
$0.01 / 1,000 releases
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
🚀 GitHub release change signals for developers
Developers, maintainers, and security teams can compare public GitHub releases or supplied release records in one run. Get structured rows with release tags, notes, assets, dates, authors, repository context, comparisons, version movement, risk signals, and a short change brief so important updates are easier to review.
Use cases
- Read GitHub release notes and flag terms worth review.
- Review GitHub release stats such as repository stars and asset download counts.
- Compare GitHub release tags to see which versions are present.
- Check GitHub releases download count values for attached files.
- Use GitHub releases API data as structured release rows.
- Check a GitHub release date before reviewing a version.
📦 Release data you can review
Each matching release becomes one structured dataset row. Rows can include the repository, release tag, release page, publication times, notes, author, status, attached assets, and source links. Repository runs can also include stars, the default branch, and the latest commit time.
When you provide an earlier release set, the row shows whether the release is new, changed, unchanged, or not compared. It can list changed note terms and asset names, classify semantic-version movement, flag built-in or watchlist signals, score importance, and add a short change brief. The signals are based on source fields, version comparisons, and matching terms; they are not a claim of deeper semantic understanding.
▶️ Compare releases in one run
- Choose
Repository releasesto read public GitHub release data, or chooseSupplied release datato compare JSON records without fetching GitHub. - For repository releases, enter one or more public repositories in
owner/nameform. For supplied data, add the current release records. - Add filters for release history, prereleases, drafts, dates, risk signals, watchlist keywords, and unchanged releases. Add
previousReleaseRecordswhen you want a comparison. - Run the Actor and open the
datasetoutput. If a public release source has a reading problem, open thediagnosticsoutput.
Repository mode uses public GitHub access and does not need a GitHub token. Private repositories, commits, pull requests, and non-GitHub release sources are outside this Actor's scope.
⚙️ Input
Choose one target. It is required, and fields for the other target are ignored. Only target is required; the other fields are optional.
Input fields
| Field | Type | What it does |
|---|---|---|
target | Select | Choose Repository releases or Supplied release data. |
repositories | String list | In repository mode, enter one or more public GitHub repositories in owner/name form. Use a separate run for a different release-monitoring setup. |
releaseHistoryLimit | Integer | Sets how many recent releases to inspect per repository. Leave it empty to return all available results until the source is exhausted. |
currentReleaseRecords | JSON object list | In supplied mode, provide current release records without fetching GitHub. Each item should have an identity such as tag_name or id; fields such as assets may be nested. Use UTC for time values. |
includePrereleases | Boolean | Includes prerelease releases in the results when on. |
includeDrafts | Boolean | In supplied mode, includes records marked as drafts. It has no effect in repository mode because public GitHub listings expose published releases only. |
publishedFrom | UTC date string | Limits analysis to releases published on or after this UTC date. Leave it empty to use all available history. |
onlyFlagged | Boolean | Returns only releases with a detected risk or watchlist signal. |
watchKeywords | String list | Flags words or phrases in release notes. Matching is case-insensitive. |
previousReleaseRecords | JSON object list | Optionally provides the earlier JSON release set for comparison. Repository mode uses the earlier repository set; supplied mode uses the same record shape as currentReleaseRecords. |
changeScope | Select | Chooses only new releases, or new releases plus changed notes or assets. |
includeUnchanged | Boolean | Includes releases with no changes in snapshot or comparison results. |
Input example
This example is copied from a successful current-beta repository run:
{"target": "repository-releases","repositories": ["microsoft/vscode"],"releaseHistoryLimit": 10,"includePrereleases": false,"includeDrafts": false,"onlyFlagged": false,"changeScope": "new-and-changed","includeUnchanged": true}
🧾 Output
The dataset output links to the structured release rows. The diagnostics output links to a key-value record with problems found while reading public GitHub release data.
Run outputs
dataset— Opens the dataset items in theoverviewview.diagnostics— Opens source diagnostics in the default key-value store.
Dataset row fields
| Field | Type | What it does |
|---|---|---|
repository | Object | Repository that published the release. |
repository.name | String | GitHub repository name in owner/name form. |
repository.url | URL | Link to the GitHub repository. |
repository.stars | Integer | Number of GitHub stars, when the source provides it. |
repository.defaultBranch | String | Name of the default branch, when the source provides it. |
repository.latestCommitAt | Date-time string | Time of the latest commit on the default branch, when known. |
release | Object | Release details and attached files. |
release.id | Integer | GitHub release ID, when the source provides it. |
release.tagName | String | Git tag that identifies the release. |
release.name | String | Name shown for the release, when provided. |
release.url | URL | Link to the release page on GitHub. |
release.publishedAt | Date-time string | Time when the release was published, when known. |
release.updatedAt | Date-time string | Time when the release record was last changed, when known. |
release.notes | String | Release notes published with the release. |
release.author | Object | GitHub user who created the release, when known. |
release.author.login | String | GitHub login of the release author. |
release.author.url | URL | Link to the author's GitHub profile. |
release.status | Object | Publication state and prerelease flag. |
release.status.state | String | Release state: draft or published. |
release.status.isPrerelease | Boolean | Whether GitHub marks the release as a prerelease. |
release.assets | Array | Files attached to the release. |
release.assets[] | Object | One file attached to the release. |
release.assets[].name | String | Name of the attached file. |
release.assets[].downloadUrl | URL | Direct download link, when available. |
release.assets[].sizeBytes | Integer | File size in bytes. |
release.assets[].contentType | String | Media type reported for the file. |
release.assets[].downloadCount | Integer | Number of downloads reported for the file. |
release.assets[].updatedAt | Date-time string | Time when the file record was last changed, when known. |
comparison | Object | Changes found against the earlier release record, when one was supplied. |
comparison.status | String | Comparison state: new, changed, unchanged, or not-compared. |
comparison.notesChanged | Boolean | Whether the release notes differ from the earlier record. |
comparison.notesTermsAdded | String list | Words or phrases in the new notes but not the earlier notes. |
comparison.notesTermsRemoved | String list | Words or phrases in the earlier notes but not the new notes. |
comparison.assetsChanged | Boolean | Whether the release assets differ from the earlier record. |
comparison.assetChanges | Object | Asset names and counts from the comparison. |
comparison.assetChanges.addedNames | String list | Names of files added since the earlier record. |
comparison.assetChanges.removedNames | String list | Names of files removed since the earlier record. |
comparison.assetChanges.changedNames | String list | Names of files whose details changed since the earlier record. |
comparison.assetChanges.previousCount | Integer | Number of files in the earlier record, when supplied. |
semanticVersion | Object | Semantic-version values and movement between release records. |
semanticVersion.current | String | Normalized semantic version for this release, when valid. |
semanticVersion.previous | String | Normalized semantic version from the earlier record, when valid. |
semanticVersion.movement | String | Version movement: major, minor, patch, prerelease, build, none, unknown, or not-compared. |
risk | Object | Risk and watchlist signals found in the release notes. |
risk.hasRisk | Boolean | Whether a breaking-change, security, or watchlist signal was found. |
risk.signals | String list | Built-in signals found in the notes: breaking-change or security. |
risk.matchedKeywords | String list | Buyer keywords found in the release notes. |
importance | Object | Score and reasons that help rank releases for review. |
importance.score | Integer | Release importance score from 0 to 100. |
importance.level | String | Importance level: low, medium, or high. |
importance.reasons | String list | Evidence used to set the importance score. |
summary | Object | Short view of release themes, cadence, position, and value. |
summary.themes | String list | Main themes found in the release notes. |
summary.cadence | String | Plain-language summary of the repository's release cadence. |
summary.positioning | String | What role the release plays in the product or repository. |
summary.whyItMatters | String | Why a user may want to review the release. |
changeBrief | String | Plain-language brief of the release and its changes. |
Example changed release row
This genuine row comes from a successful current-beta supplied-release-data run. It shows a changed major release with a security signal, a watchlist match, and asset changes.
{"repository": {"name": "example/widget","url": "https://github.com/example/widget"},"release": {"tagName": "v2.0.0","url": "https://github.com/example/widget/releases/tag/v2.0.0","notes": "Security fix and breaking change","status": {"state": "published","isPrerelease": false},"assets": [{"name": "release.tar.gz","downloadUrl": "https://github.com/example/widget/releases/download/v2.0.0/release.tar.gz","sizeBytes": 42,"contentType": "application/gzip","downloadCount": 3,"updatedAt": "2026-08-01T12:31:00Z"}],"id": 200,"name": "Release 2.0.0","publishedAt": "2026-08-01T12:00:00Z","updatedAt": "2026-08-01T12:30:00Z","author": {"login": "release-bot","url": "https://github.com/release-bot"}},"comparison": {"status": "changed","notesChanged": true,"notesTermsAdded": ["and","breaking","change","fix","security"],"notesTermsRemoved": ["maintenance"],"assetsChanged": true,"assetChanges": {"addedNames": ["release.tar.gz"],"removedNames": ["old.tar.gz"],"changedNames": [],"previousCount": 2}},"semanticVersion": {"current": "2.0.0","previous": "1.9.0","movement": "major"},"risk": {"hasRisk": true,"signals": ["breaking-change","security"],"matchedKeywords": ["security"]},"importance": {"score": 100,"level": "high","reasons": ["release notes or assets changed","major version movement","release assets changed","breaking-change signal","security signal","watchlist keyword matched"]},"summary": {"themes": ["breaking changes","security","bug fixes"],"cadence": "Not enough release history to estimate cadence.","positioning": "A major release with broad version movement.","whyItMatters": "Review this release because its notes contain a risk or watchlist signal."},"changeBrief": "Release 2.0.0 has changed since the prior snapshot. Its semantic version movement is major. Risk or watchlist signals were found in the notes. Main themes: breaking changes, security, bug fixes."}
💳 Pricing
Charge event
You pay $0.00001 for each successfully returned GitHub release. Empty runs, source diagnostics, and setup work do not create this event because it is tied to a successfully returned release.
🔌 Integrations
Start runs from the Apify Console or API. Read dataset rows through the Apify Dataset API, use diagnostics when a public source has a reading problem, and export the dataset in standard Apify formats for your own workflow.
❓ FAQ
Can I compare a new release with an earlier release set?
Yes. Add previousReleaseRecords. In Repository releases, it is the earlier repository set; in Supplied release data, use the same record shape as the current records. Set changeScope to new-and-changed to include changed notes or assets.
Can I read public GitHub releases without a token?
Yes. Repository releases uses public GitHub release data and does not need a GitHub token. Supplied release data compares the JSON you provide and does not fetch GitHub.
Can I include prereleases or draft releases?
Turn on includePrereleases to include prereleases. includeDrafts applies to supplied records; it has no effect on repository releases because public GitHub listings expose published releases only.
Can I flag my own words in release notes?
Yes. Add words or phrases to watchKeywords. Matching is case-insensitive. Turn on onlyFlagged to return releases with a built-in risk or watchlist signal.
Does the Actor show changed release notes and assets?
Yes. With an earlier release set, comparison fields show whether notes or assets changed, the added or removed note terms, and changed asset names and counts.
Does it return asset download counts and repository stats?
When the source provides them, asset rows include downloadCount, and repository data can include stars, defaultBranch, and latestCommitAt.
Does it send alerts or keep a baseline?
Runs are on demand. The Actor does not promise a scheduler, proactive alerts, or automatic baseline retention. Pass previousReleaseRecords when you want a comparison.
What happens when a public release source has a problem?
The run exposes source problems through the diagnostics key-value output. A filter can also leave the dataset with no matching release rows.
Does it analyze commits, pull requests, or private repositories?
No. It focuses on public GitHub release data. Commit history, pull requests, private repositories, and non-GitHub release sources are outside its scope.
📝 Changelog
0.0: Initial release
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- GitHub Security Advisories Scraper — Pair release reviews with published GitHub Security Advisory data.
- Semver Parser & Version Range Checker — Parse release tags and check version ranges before an upgrade.
- GitHub Release Intelligence — Summarize release changes, breaking changes, and semantic-version jumps.
- GitHub Release Risk Monitor — Flag breaking changes, security fixes, migrations, and custom release-note keywords.
- GitHub Releases Delta Monitor — Find new or changed releases and return normalized release alerts.
Made with ❤️ by Maxime Dupré