Monitor Multiple GitHub Repos with n8n Webhook Automation

This tutorial walks you through automating the monitoring of multiple GitHub repositories using n8n webhooks. Save hours by automatically registering and deleting webhooks without polling, and receive instant notifications on repository changes.
manualTrigger
httpRequest
webhook
+5
Workflow Identifier: 2091
NODES in Use: Manual Trigger, Sticky Note, Split Out, HTTP Request, Set, Slack, Telegram, Webhook

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 managing several GitHub repositories for her team’s projects. Every day, she needs to stay up-to-date on critical events like code commits and pull requests across multiple repos. Currently, Sarah spends over an hour manually checking each repository to track changes, resulting in missed updates and workflow delays. Worse still, relying on polling APIs leads to rate limits and slow alerts, causing frustration and lost productivity.

Imagine if Sarah could completely automate the monitoring process across all her repositories — effortlessly registering the necessary webhooks, receiving real-time notifications about code changes, and easily managing which repos to watch without writing any code.

2. What This Automation Does

This n8n workflow is specifically designed to solve Sarah’s challenge by enabling real-time monitoring of multiple GitHub repositories using webhooks. When executed, it:

  • Automatically registers GitHub webhooks for all repositories listed in a dynamic watchlist.
  • Supports adding or removing repositories from the watchlist without reconfiguring webhooks manually.
  • Receives real-time webhook events (pushes, pull requests) directly from GitHub without polling.
  • Extracts relevant commit data like author, date, modified files, and commit messages.
  • Sends formatted notifications about repository changes to messaging services like Telegram or Slack.
  • Allows you to delete all registered webhooks easily from the monitored repos.

By automating these tasks, Sarah can save several hours every week and avoid API rate limiting, ensuring she never misses an important repository update again.

3. Prerequisites ⚙️

  • GitHub Personal Access Token with scopes: admin:repo_hook and optionally repo for private repositories.
  • n8n account set up with access to webhook functionality.
  • HTTP Header Authentication credentials configured in n8n with your GitHub token.
  • Optional: Telegram or Slack accounts for receiving notifications.
  • Basic familiarity with n8n interface and workflow execution.
  • Self-hosting option available for n8n with providers like Hostinger (Learn more).

4. Step-by-Step Guide

Step 1: Prepare Your Repository List

Open the Repos to Monitor node. Here, edit the JSON to add the full GitHub URLs of all repositories you want to monitor. Example:

{
  "repos":[
    "https://github.com/arose26/testrepo2",
    "https://github.com/arose26/testrepo3"
  ]
}

This sets the dynamic watchlist for your workflow.

Common Mistake: Ensure URLs are full GitHub HTTPS URLs with no trailing slashes.

Step 2: Set Up GitHub API Credentials in n8n

Navigate to the Register Github Webhook HTTP Request node. Under Authentication, select Generic Credential Type and Header Auth. Create new credentials with:

  • Name: Authorization
  • Value: Bearer

Save and apply these credentials to the node. Use the same credentials for both webhook registration and deletion nodes.

Common Mistake: Do not forget to add “Bearer ” prefix before your token.

Step 3: Configure Webhook URL in Register Webhook Node

Replace the value of the url field inside the JSON body of the Register Github Webhook node with the actual webhook URL from your Webhook Trigger node’s production URL. This URL is the endpoint that GitHub will notify on events.

Make sure the webhook URL is accessible over the internet and supports HTTPS.

Step 4: Test Webhook Registration

Disable the Webhook Trigger node temporarily. Click the Test workflow button to run the process of registering webhooks to your monitored repositories.

Verify using the Get Existing Hook node that webhooks are correctly registered by looking at their URLs in the output.

Common Mistake: Test workflow with Webhook Trigger enabled will fail because no webhook call will come in.

Step 5: Activate Webhook Trigger

Enable the Webhook Trigger node and activate your workflow. Now your workflow will listen for GitHub events in real-time.

Try making a commit or opening a pull request in one of your monitored repos to test event reception.

Step 6: Process Incoming GitHub Events

When a GitHub event arrives at the webhook, the Fields Set node extracts important details such as:

  • Repository full name
  • Repository avatar URL
  • Commit timestamp
  • Author name and username
  • Modified files list
  • Commit message and URL

This prepares the data for notification nodes.

Step 7: Send Notifications

The workflow includes an example Telegram node (disabled Slack node included) configured to send formatted messages about commits. Customize the message text in the node parameters and configure your bot token and chat/channel ID.

Check your Telegram or Slack to see commit alerts as they happen.

Step 8: Deleting Webhooks

To remove registered webhooks, use the Repos to Monitor1 and Split Out1 nodes to get the list, then fetch existing hooks with Get Existing Hook node, and delete them via the Delete Github Webhook HTTP Request node. This is useful for cleaning up when changing monitored repositories.

5. Customizations ✏️

  • Change Notification Channel: Switch from Telegram to Slack by enabling the Slack node and entering your Slack credentials.
  • Monitor Additional GitHub Events: In the JSON body of Register Github Webhook, add events like issues, fork, or release for broader change detection.
  • Add Repository Filter: Insert a Function node to filter repositories based on naming patterns before webhook registration.
  • Custom Message Formatting: Update the Telegram node’s text parameter to include more info such as branch name or detailed commit diff links.

6. Troubleshooting 🔧

Problem: “401 Unauthorized” error from GitHub API.
Cause: Invalid or missing personal access token in header authentication.
Solution: Double-check your GitHub token has correct scopes and is input with the “Bearer ” prefix in credentials. Reauthenticate in n8n.

Problem: No webhook events received after activation.
Cause: Webhook URL not correctly exposed to GitHub or node disabled.
Solution: Ensure your n8n webhook production URL is publicly accessible over HTTPS and the Webhook Trigger node is enabled and workflow activated.

7. Pre-Production Checklist ✅

  • Confirm GitHub personal access token has admin:repo_hook scope.
  • Verify webhook URLs in GitHub repos point to your n8n webhook trigger URL.
  • Test webhook registration via manual trigger and check for correct API responses.
  • Make a real commit in one monitored repository and observe notification reception.
  • Backup your workflow before making major changes.

8. Deployment Guide

Once tested successfully, activate your n8n workflow so it listens 24/7 for GitHub events. If self-hosting, ensure your n8n URL is stable and the webhook URL is accessible publicly with valid SSL certificate. Monitor workflow runs from n8n dashboard for errors or missed events. Regularly update GitHub tokens and credentials as needed.

9. FAQs

Can I use this workflow for private repositories?
Yes, just ensure your GitHub token has repo access in addition to webhook scopes.

Does this consume GitHub API rate limits?
Webhook registration requires some API calls, but after setup, event delivery is push-based and does not consume rate limits regularly.

Is my data secure?
All communication between GitHub and n8n is over HTTPS with token authentication, keeping your repo data safe.

10. Conclusion

By building this n8n automation, you’ve empowered yourself like Sarah to monitor multiple GitHub repositories dynamically without manual intervention. The workflow saves hours of time spent on polling or repeated setup, instantly notifying you of important code changes. Next, consider expanding your automation with automated issue tracking or deployment triggers for enhanced CI/CD processes. You’re now set to keep your projects running smoothly and stay informed effortlessly!

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

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