GitHub release notifications: every way to get notified
Every real way to get notified when a GitHub repo ships a release: watch settings, the per-repo Atom feed, email, the release webhook event, and GitHub Actions - compared honestly, plus the gap that is left for reaching people who are not already watching.
What this solves
Someone wants to be notified automatically whenever a GitHub repo, their own or someone else's, publishes a new release, and is comparing the built-in ways to do it.
How S2P helps
Every built-in way to get notified about a GitHub release - watch settings, the Atom feed, email, the release webhook event, and GitHub Actions - compared on reach, effort, and whether it is real-time.
Key takeaways
- Watch > Custom > Releases is the one-click way to follow a single repo's releases without the rest of its activity.
- The per-repo releases.atom feed needs no login and works in any feed reader or script.
- The release webhook event fires on seven actions, but published is the one that matters for announcements.
- Every built-in method notifies you and other watchers - none of them announce a release to people who are not already watching.
Section 1
Watch a repo for releases only
The one-click path: GitHub's own Watch menu can follow a repo's releases without the rest of its activity.
On any repository's main page, open the Watch dropdown in the upper right and choose Custom. That opens a list of event types you can subscribe to independently, including Issues, Pull requests, Releases, Discussions, and Security alerts. Check Releases, uncheck anything you do not want, and confirm - you will get a GitHub notification every time that repo publishes a release, without picking up its issue and pull request traffic too.
This creates a normal GitHub notification, which shows up in your notifications inbox at github.com/notifications, in the GitHub Mobile app, or by email if you have routed watching notifications to email in your notification settings. It is the right choice when you personally want to track a handful of repos, including ones you do not maintain yourself.
- Repo page -> Watch dropdown -> Custom -> check Releases.
- Uncheck Issues, Pull requests, and any other event type you do not want.
- Notifications land in your GitHub inbox, the mobile app, or email depending on your settings.
- Good for tracking a handful of repos you personally care about, yours or not.
Section 2
The per-repo releases Atom feed
Every public repository publishes its releases as an Atom feed, with no authentication and no GitHub account required.
The URL pattern is https://github.com/<owner>/<repo>/releases.atom. We verified this against microsoft/vscode's feed (https://github.com/microsoft/vscode/releases.atom) on 2026-07-28, which returned a valid Atom feed (HTTP 200, content-type application/atom+xml) with no login, no API token, and no authentication of any kind for a single anonymous fetch. Point any feed reader, or a script, at that URL for any public repo and you get its release history, newest first.
This is the cleanest option when you want release notifications outside GitHub's own notification system entirely: in a feed reader, an internal dashboard, or a script that polls the feed on a schedule. It is polling, not push - something has to fetch the URL periodically to notice a new entry, unlike a webhook, which is pushed to you the moment a release publishes.
- URL pattern: https://github.com/<owner>/<repo>/releases.atom - works for any public repo.
- No login and no API token required for an anonymous fetch.
- Verified against github.com/microsoft/vscode/releases.atom on 2026-07-28: HTTP 200, valid Atom feed.
- Polling, not push: a reader or script has to check the feed to notice new entries.
Releases feed for any public repo
https://github.com/<owner>/<repo>/releases.atom
# verified working example (fetched 2026-07-28, HTTP 200, no auth):
curl -s https://github.com/microsoft/vscode/releases.atomSection 3
Email notifications
GitHub can deliver the same watch-based notifications to your inbox instead of, or alongside, the in-app notifications center.
GitHub's notification settings, under your account's Settings > Notifications, let you choose how to receive notifications for the things you watch: through the notifications inbox at github.com/notifications, in the GitHub Mobile app, through email, or a combination of these. If you route watching notifications to email and you set a repo to Custom > Releases as described above, a release publish reaches your inbox as an email.
This is convenient if you do not check github.com/notifications regularly, but it is still the same underlying watch subscription - it does not add a new source of release information, it just changes the delivery channel for the one you already set up.
- Configured in account Settings > Notifications, not per repository.
- Routes the same Watch > Releases subscription to your inbox instead of, or alongside, the notifications center.
- Does not create a new signal - it changes delivery of the one from the watch setting.
- Useful if you check email more reliably than github.com/notifications.
Section 4
The release webhook event
For programmatic notification, GitHub can push a payload to a URL you control the moment a release changes state.
GitHub's release webhook event fires on seven actions: created, deleted, edited, prereleased, published, released, and unpublished, per GitHub's webhook events and payloads documentation. For an announcement use case, published is almost always the one you want - it fires when a release, or pre-release, goes live, whether it started as a draft or not.
The payload's top-level keys are action (which of the seven actions triggered this delivery), release (the full release object: tag, name, body, author, and URLs), repository, and sender, plus organization, enterprise, and installation when applicable. A webhook receiver just needs to check that action equals published and then read the release object for the details.
Setting this up means configuring a webhook on the repository (under Settings > Webhooks) pointing at a URL you host and control, which is real infrastructure - unlike the Atom feed, you need something running to receive the POST. This is the path CI systems, chatops relays, and custom automation use, and it is exactly what a GitHub Actions workflow triggered on release: types: [published] is doing under the hood, without you hosting anything yourself.
- Fires on 7 actions: created, deleted, edited, prereleased, published, released, unpublished.
- published is the action for 'a release just went live'.
- Top-level payload keys: action, release, repository, sender, plus organization/enterprise/installation when relevant.
- Needs a URL you host to receive it - unlike the Atom feed, this is push, not pull.
Section 5
GitHub Actions as the notification trigger
If you want the notification to run code rather than deliver a message, a workflow triggered directly on the release event is the built-in path.
A GitHub Actions workflow can trigger on the same release event as the webhook, without you hosting a receiver - GitHub runs it for you. Scoped to types: [published], it fires only when a release goes live, and from there the workflow can do anything: call an API, post to a chat tool, update a status page, or trigger a downstream build.
The release's fields (tag, name, body, URL) are available directly from the github.event.release context, the same context our GitHub-to-Slack and GitHub-to-Discord recipes read from - this is the shared mechanism behind both.
- Triggers on the same event and action as the webhook, but GitHub runs it - nothing to host.
- Scope with types: [published] to skip drafts and edits.
- The release object (tag, name, body, URL) is available via github.event.release.
- This is the mechanism our GitHub-to-Slack and GitHub-to-Discord recipes both build on.
.github/workflows/on-release-published.yml
name: Notify on release
on:
release:
types: [published]
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Log the release
run: |
echo "Released ${{ github.event.release.tag_name }}: ${{ github.event.release.name }}"
echo "URL: ${{ github.event.release.html_url }}"Section 6
Which method should you use?
The five methods above trade off reach, effort, and whether they are pushed to you or something you have to poll.
- Watch, the Atom feed, and email cost nothing to set up and need no hosting.
- The webhook event needs a receiver you host; Actions needs no hosting but does need write access.
- Only the webhook event and Actions can trigger code, not just deliver a message.
- All five are real-time except the Atom feed, which is polled on whatever interval you choose.
GitHub release notification methods compared
| Method | Who it reaches | Setup effort | Real-time or polled | Needs write access |
|---|---|---|---|---|
| Watch (Custom > Releases) | You, the watcher | None - a few clicks | Real-time (GitHub push) | No, read access only |
| Releases Atom feed | Anyone who polls the URL | None - just the URL | Polled, on your interval | No - public repos need no access at all |
| You, the watcher | A settings toggle | Real-time (same as Watch) | No | |
| release webhook event | Any URL you host | Medium - configure and host a receiver | Real-time (pushed on publish) | Admin access to add the webhook |
| GitHub Actions on release | Whatever the workflow does | Low - a workflow file | Real-time (pushed on publish) | Write access to add the workflow |
Section 7
What all five have in common: they tell watchers, not the world
Every method on this page answers the same question. None of them answer a different one, and the difference matters.
Every method above answers: how do I, or my automation, find out a release happened? None of them answer: how does someone who is not already watching my repo find out? Watch, the Atom feed, and email only reach people who chose to watch. The webhook event and GitHub Actions only reach whatever you build - and by default that is still an internal system, not a public announcement.
Turning a release into something that reaches people beyond your existing watchers - a changelog readership, LinkedIn, X, a public Discord, Bluesky - needs the release translated into channel-appropriate copy and published to platforms outside GitHub's notification system entirely. That is a separate job from detection, and it is the one S2P is built for: it uses the same release event described above as its trigger, drafts channel-native posts for the destinations you connect, and routes them through approval before anything goes out publicly.
If your need really is detection - you or your team finding out the moment something ships - the five methods on this page cover it completely and for free. If your need is announcement, see our GitHub-to-Slack and GitHub-to-Discord recipes for that half, or start from what building in public means if the audience you want to reach is the one following your public shipping story.
- Watch, the Atom feed, and email only reach people who already opted in by watching.
- The webhook event and Actions only reach whatever receiver or workflow you build.
- None of the five, by default, announce a release to a public, non-watching audience.
- S2P starts from the same release event and adds the translation and public distribution layer.
FAQ
Questions this article answers
How do I get notified when a GitHub repo publishes a new release?
Open the repo, click Watch in the upper right, choose Custom, and check Releases. You will then get a GitHub notification (inbox, mobile app, or email depending on your settings) every time that repo publishes a release. For a login-free option, subscribe to its https://github.com/<owner>/<repo>/releases.atom feed in any feed reader instead.
How do I watch only releases on GitHub, not issues and PRs?
Use Custom watch settings rather than the default Watch. On the repo page, open the Watch dropdown, choose Custom, and check only Releases while leaving Issues, Pull requests, and the other event types unchecked. You will still get notified about releases without picking up the repo's other activity.
Is there an RSS or Atom feed for GitHub releases?
Yes. Every public repository exposes its releases as an Atom feed at https://github.com/<owner>/<repo>/releases.atom, with no login or API token required. We verified this against microsoft/vscode/releases.atom, which returns a valid Atom feed. It is polled, not pushed, so a feed reader or script needs to check it periodically.
What actions does the GitHub release webhook fire on?
Seven: created, deleted, edited, prereleased, published, released, and unpublished. For notification and announcement use cases, published is the one to filter for, since it fires when a release goes live. The payload's top-level keys are action, release, repository, sender, plus organization, enterprise, and installation when applicable.
Can I get GitHub release notifications by email?
Yes. In your account's Settings > Notifications, route watching notifications to email, then set the repo you care about to Custom > Releases as described above. Email delivery uses the same underlying watch subscription as the in-app notifications center - it just changes where the notification lands.
How is a release webhook different from watching a repo?
Watching notifies a person through GitHub's own notification system. The release webhook event notifies a URL you host, with a JSON payload, so code can react to it automatically - posting to a chat tool, triggering a build, or updating a status page. A GitHub Actions workflow triggered on the same event does the same job without you hosting a receiver.
Related guides and pages
Where to go next
Hand-picked pages that go deeper on the workflow, channels, and tooling covered above.
