Skip to main content

GitHub magic - Atom Feeds for Everything

A while ago, we were working on an SDK, and some third-party developers who used our SDK reached out with an interesting request. We used to maintain extensive documentation in our GitHub Wiki, and they wanted to stay updated every time something changed in it. They didn't want to manually check the wiki every day, and GitHub doesn't send email notifications for wiki changes. 

This got me digging around, and that's when I discovered something pretty cool - GitHub has Atom feeds for almost everything! Commits, releases, tags, and yes, even wiki changes. I tried it out myself and suggested the same to them. Problem solved, and I thought, why not share this little gem with everyone?

/**
 *
@disclaimer
 * This post covers GitHub's publicly available Atom feeds
 * These feeds work for public repositories
 * For private repos, you'll need authentication
 * Please feel free to leave comments if I've missed something

*/

What are Atom Feeds?

Atom feeds are XML-based web feeds that provide a standardized way to publish frequently updated content. Think of them as RSS feeds' cousin - they serve the same purpose of keeping you updated about changes to a website or repository.

GitHub has built-in Atom feeds for various repository activities, and the best part? They're super easy to use once you know the URL pattern.

GitHub's Atom Feed URLs

Let me break down the different types of feeds GitHub offers and how to construct their URLs.

Commits Feed

Want to track commits on a specific branch? Here's the pattern:

https://github.com/{owner}/{repo}/commits/{branch}.atom

Real examples:

  • Track commits on the 'next' branch:
    https://github.com/webex/webex-js-sdk/commits/next.atom
  • Track commits on the 'beta' branch:
    https://github.com/webex/webex-js-sdk/commits/beta.atom

Simply replace {owner} with the repository owner's username, {repo} with the repository name, and {branch} with the branch you want to track.

Releases Feed

If you want to stay updated on new releases:

https://github.com/{owner}/{repo}/releases.atom

Example:
https://github.com/webex/webex-js-sdk/releases.atom

This is particularly useful if you're maintaining dependencies and want to know when a library you depend on releases a new version.

Tags Feed

Similar to releases, you can track when new tags are created:

https://github.com/{owner}/{repo}/tags.atom

Example:
https://github.com/webex/webex-js-sdk/tags.atom

Tags are lightweight references to specific commits, and many teams use them for marking release points or important milestones.

Wiki Feed

And here's the one that started it all - the wiki feed:

https://github.com/{owner}/{repo}/wiki.atom

Example:
https://github.com/webex/webex-js-sdk/wiki.atom

Perfect for tracking documentation changes, which was exactly what those developers needed.

Using Atom Feeds with Feed Readers

Now that you know where to find these feeds, how do you actually use them? This is where tools like feeder.co come in handy.

Feed readers like feeder.co let you subscribe to multiple Atom/RSS feeds and get notifications whenever there's new content. Instead of manually checking GitHub every day for updates on specific branches or releases, you can:

  1. Add the Atom feed URL to your feed reader
  2. Configure notification preferences (email, push notifications, etc.)
  3. Get notified automatically when changes happen

For detailed instructions on setting up feeds, check out feeder.co's RSS documentation.

This approach works great if you're:

  • A product manager tracking releases across multiple dependencies
  • A developer monitoring specific feature branches
  • A technical writer keeping tabs on documentation updates
  • A business owner watching competitor repositories

AI and Atom Feeds - A Perfect Match

Here's where things get interesting. These Atom feeds aren't just for human consumption - they're gold mines for AI applications.

Think about it - you have structured, real-time data about repository changes in a machine-readable format. Here are some practical use cases:

Automated Release Notes Generation

Pull data from releases and commits feeds, and use AI to generate comprehensive release notes. Instead of manually writing what changed, let AI parse the commits and create human-readable summaries.

Documentation Drift Detection

Monitor wiki feeds and code commit feeds simultaneously. AI can identify when code changes but documentation doesn't get updated, alerting teams to potential documentation gaps.

Dependency Update Intelligence

Track releases feeds of your dependencies. AI can analyze the changes, assess impact on your codebase, and even suggest which updates are safe to apply versus which ones need careful testing.

Smart Notifications

Not all commits are equal. Feed Atom data into AI systems that can filter and prioritize notifications based on what matters to you - breaking changes, security fixes, or specific file modifications.

Why This Matters

For product managers and business owners, this means you can stay on top of what's happening in your projects without drowning in notifications. You get to choose what you track - maybe you only care about releases and wiki changes, not every single commit.

For developers, it's a way to keep an eye on multiple repositories without context-switching constantly. And when you combine it with AI, you can build some pretty sophisticated automation on top of these feeds.

The beauty of Atom feeds is that they're open, standardized, and don't require any special API keys or authentication for public repositories. GitHub just serves them up, ready to use.

Final Thoughts

What started as a simple request from some developers needing wiki change notifications turned into discovering a whole ecosystem of GitHub feeds. Whether you're using them with feed readers for personal notifications or feeding them into AI systems for intelligent automation, these Atom feeds are a powerful but often overlooked feature.

Give it a try - pick a repository you care about, grab its feed URL, and see what you can build with it. I'd love to hear what use cases you come up with!

I hope this was helpful. Do let me know in the comments if you've discovered other creative uses for GitHub's Atom feeds!

Comments

Popular posts from this blog

Confluence: 5 quick things that you need

As part of my work experiments, this week I would like to write down the things that one needs to know in confluence that can up-skill their documentation works. I will cover the following 5 things, How to Anchor link a title? How to Anchor link to a section? How to create a dashing dashboard? Panel - Confluence Macro Layouts - Confluence Tools Content by Label - Confluence Macro 1. How to Anchor link a title? This is the most required thing. Most useful when one has to refer to a section internally on the same confluence page. Let's consider you have a page with three different sections and titles as shown below, In this, if you want to add an internal anchor from a text in paragraph 3 to a title in paragraph 1, you can add it as follows, Choose the word that needs Anchor Click on the link icon from the Toolbar above In the link box, enter #Page Title 1 Click Insert That is it. Your anchor from the selected text to Page Title 1 is ready. This can be tested out in the preview itsel...

npm-link | What NPM won't tell you!

Hello readers. So back with another easy yet unexplored feature of npm/yarn packages. We as frontend developers / SDK developers, have to deal with more than one repositories where we actually code contribute. Most SDK developers would know this already or they use the not-so-well documented 'npm link' command . /**  *  @disclaimer  * Please read this post fully before executing any command. My scenario might not be the same as yours.  * This article below uses a repo from my current workplace as an example which is open-source and does not violate the Cisco Confidentiality Policies */ To make this article easier to understand, some representations, Host - Package that needs another local package as part of its node modules. Let's assume the path to this package is  ~/Documents/Repos/demo-app Adhoc - Local package that is added into another package as a dependency. Let's assume the path to this package is  ~/Documents/Repos/semver-monorepo What is...

Git magic - Squash commits

Back with another git magic. When it comes to merging a pull request on Github, there are two options Rebase and Merge Squash and Merge What is Rebase and Merge? When one chooses Rebase and Merge, all the commits in the PR are added to the target branch. For example, if the PR has 5 commits, all of those commits will be visible in the PR history of the target branch. What is Squash and Merge? When a PR is merged by choosing Squash and Merge, all the commits in the PR are combined into one PR and then added to the target branch. Once again, if the PR has 5 commits or any number of commits, they are combined and added to the target branch. Therefore, this is what Squash means. Combining 'n' different commits into one single commit is called squashing. In this blog post, we will go through the commands that can squash commits.  Advantages of Squashing commits No more redundant commits In a pull request, one may have 'n' different commits for one change. They might have bee...