Automate GitHub Release Alerts with n8n and Slack

This n8n workflow automates monitoring of GitHub repository releases and sends Slack notifications for new releases. It saves time by tracking multiple repos daily and instantly alerts your team about updates.
httpRequest
scheduleTrigger
slack
+3
Workflow Identifier: 1527
NODES in Use: Schedule Trigger, Code, HTTP Request, If, Slack, Sticky Note

Press CTRL+F5 if the workflow didn't load.

Learn how to Build this Workflow with AI:

Visit through Desktop for Best experience

1. Opening Problem Statement

Meet Sarah, a developer team lead responsible for keeping her team updated on the latest releases of several critical GitHub repositories like n8n-io/n8n and home-assistant/core. Sarah used to manually check each repo’s release page daily, copying release notes and posting updates on Slack. This tedious routine took an hour every morning and often led to delayed or missed announcements, causing confusion and wasted time for her team.

Imagine the cost when such delays result in missing crucial security updates or feature releases. Sarah’s daily manual check drained her productivity, introduced errors, and left her team less informed. Clearly, a smart, automated solution tailored to monitoring GitHub releases and notifying the team is what she needs.

2. What This Automation Does

This specific n8n workflow automates monitoring the latest GitHub releases for multiple repositories and sends notifications to a Slack channel only when new releases are detected. Here’s what happens when it runs every day:

  • Fetches the latest release info from each specified GitHub repo via GitHub’s API.
  • Checks if the release is new by comparing the publish date to the last 24 hours.
  • Sends a formatted Slack message to a predefined channel with release name, description snippet, and URL.
  • Supports multiple repos configured in one place, making maintenance easy.
  • Runs daily automatically without any manual intervention.
  • Ensures your team stays instantly informed about new releases, avoiding delays.

This workflow saves Sarah at least 5 hours a week and virtually eliminates human error in release tracking and team communications.

3. Prerequisites ⚙️

  • n8n account to create and run the workflow. Self-hosting is optional but possible for enhanced control (see Hostinger guide).
  • GitHub API access (no auth needed for public repos but optional for private repos).
  • Slack account and a Slack workspace with permission to post messages in the target channel.
  • Slack node credentials setup inside n8n to send messages.

4. Step-by-Step Guide to Build This Workflow

Step 1: Add a Daily Trigger node to schedule your workflow

Click + → Search and select Schedule Trigger. Configure it with an interval of 1 day to run the workflow every day automatically. This ensures your GitHub repos are checked daily without manual input.

You should see the node ready and showing the scheduled interval. Common mistake: forgetting to activate the workflow later so it runs.

Step 2: Create a Code node to configure your GitHub repos

Next, add a Code node, rename it to RepoConfig. Paste this JavaScript code to set your repos:

return [
  {
    "github-org": "n8n-io",
    "github-repo": "n8n"
  },
  {
    "github-org": "home-assistant",
    "github-repo": "core"
  }
];

This outputs an array of objects with GitHub organization and repository names. Customize this list as needed to track your own repos.

Expected result: multiple repo entries flow through the workflow. Mistake: JSON syntax errors or typos in org/repo names.

Step 3: Add an HTTP Request node to fetch latest release from GitHub

Add an HTTP Request node, rename it Fetch Github Repo Releases. Configure as follows:

  • Set method to GET.
  • In the URL field, use the expression:
    =https://api.github.com/repos/{{ $json["github-org"] }}/{{ $json["github-repo"] }}/releases/latest
  • This dynamically requests the latest release info for each repo from the previous Code node.

You should see data with fields like published_at, name, and url in the output. Watch out for API rate limits if you scale to many repos.

Step 4: Add an If node to check if the release is new

Add an If node named Wether Release is new. Configure the condition:

  • Choose Boolean or DateTime check.
  • Set condition to check if the published_at date of the release is after (more recent than) 24 hours ago.
  • Use expression in left value:
    {{ $json.published_at.toDateTime() }}
  • Compare with the right value expression:
    {{ DateTime.utc().minus(1, 'days') }}

This ensures only new releases from the last day pass through to notification. Mistake: wrong date formats causing failed comparisons.

Step 5: Add a Slack node to send notification messages

Add a Slack node named Send Message. Configure:

  • Select Channel as the target.
  • Choose your Slack channel, e.g., #dk-test.
  • Set message text using expressions to include the repo and release details, for example:
  • :tada: New release for *{{ $('RepoConfig').item.json["github-repo"] }}* - {{ $('Fetch Github Repo Releases').item.json["name"] }}
    
    {{ $json.body.slice(0, 500) }}
    
    {{ $('Fetch Github Repo Releases').item.json["url"] }}
  • Enable Markdown formatting for rich text.

Expected outcome: Your Slack channel receives a nicely formatted message with new release info. Common mistake: invalid channel name or missing Slack credentials.

Step 6: Link the nodes as shown

Connect the nodes in this order for smooth flow:

  • Daily TriggerRepoConfig
  • RepoConfigFetch Github Repo Releases
  • Fetch Github Repo ReleasesWether Release is new
  • Wether Release is new (True) → Send Message

This order ensures your repo list cycles daily, fetching and filtering new releases, then notifying Slack only when appropriate.

5. Customizations ✏️

  • Add more repositories: In the RepoConfig Code node, add more JSON objects with “github-org” and “github-repo” fields to monitor additional repos.
  • Change notification channel: In the Slack node, update the channelId value to your preferred Slack channel name or ID.
  • Customize message content: Modify the Slack message text field to include more or less info, add emojis, or format differently using Markdown.
  • Adjust release freshness window: In the If node, change the time comparison from 1 day to hours or weeks by editing DateTime.utc().minus(1, 'days').
  • Use GitHub authentication: If monitoring private repos, add GitHub personal access token headers in the HTTP request node for authenticated API calls.

6. Troubleshooting 🔧

Problem: “Failed to fetch releases or API rate limited”

Cause: Exceeding GitHub API’s unauthenticated rate limit or incorrect repository names.

Solution: Add authentication headers with a GitHub token in the HTTP Request node. Double-check the repo names in the Code node for typos.

Problem: “Slack message not sent or invalid channel error”

Cause: Incorrect Slack credentials or wrong channel name.

Solution: Reauthorize Slack credentials under n8n settings, verify the channel name exactly matches your Slack workspace channels, and ensure the bot has permission to post.

Problem: “Date comparison fails in If node”

Cause: Date formats not properly parsed or incompatible.

Solution: Use expression helper toDateTime() exactly as in the If node setup, ensuring published_at field is a valid date string.

7. Pre-Production Checklist ✅

  • Verify your GitHub repositories are correctly listed and accessible.
  • Test the HTTP Request node manually to confirm it fetches release data as expected.
  • Check the If node conditions by simulating dates within and beyond the 24-hour window.
  • Confirm Slack credentials and channel permissions are correctly configured.
  • Run the workflow manually and check if Slack messages appear for new releases.
  • Backup your workflow export for rollback if needed.

8. Deployment Guide

Activate the workflow by clicking Activate in n8n so it runs on schedule daily. For monitoring, check n8n’s execution logs for errors or missed runs.

Consider connecting alerting mechanisms for workflow failures if running critical production automations.

10. Conclusion

By following this guide, you’ve set up a powerful workflow that automates tracking GitHub repository releases and delivering timely Slack notifications. You’ve saved your team hours of manual checks each week and ensured instant communication of important updates.

Next, you might consider extending this automation to:
– Include automated changelog posting in team wikis
– Integrate with email to send release summaries
– Monitor additional repositories or other services like Docker Hub

With n8n and Slack, keeping your team informed has never been easier or more reliable!

Promoted by BULDRR AI

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n (Beginner Guide)

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free