Skip to content

GitHub Repo Monitoring

Stay on top of repository activity without drowning in GitHub's default notification firehose. Moltbot checks the repos you care about at intervals you define and only notifies you when something actually happens.

Prerequisites

  • Moltbot running and connected to Telegram
  • Scheduled tasks enabled — See Scheduled Tasks
  • GitHub MCP tool installed and authenticated — Moltbot needs a GitHub personal access token with appropriate scopes (typically repo for private repos, or just public access for open source projects)

Why Not Just Use GitHub Notifications?

GitHub's built-in notifications are all-or-nothing for watched repos. You get every comment on every issue, every CI status update, every review request — regardless of relevance. Most people end up with thousands of unread notifications and eventually ignore them entirely.

Moltbot's approach is different:

  • You define what matters. Only new issues? Only releases? Only PRs from specific people? You control the filter.
  • AI-powered summarization. Instead of raw notification titles, you get a concise summary of what changed and why it might matter to you.
  • Silence when nothing happens. The critical instruction "If nothing changed, do NOT send a message" eliminates noise completely.

Setup

Step 1: Basic Repo Watcher

Start with a simple configuration that checks a few repos every 30 minutes:

yaml
cron:
  - name: repo-watcher
    schedule: "*/30 * * * *"
    channel: telegram
    prompt: |
      Use the GitHub tool to check activity in the last 30 minutes:
      - steipete/moltbot
      - langchain-ai/langchain
      If there are new Issues, PRs, or Releases, notify me.
      If nothing changed, do NOT send a message.

The last line is essential. Without it, you would receive a "nothing to report" message every 30 minutes — exactly the kind of noise this recipe is designed to eliminate.

Step 2: Customize the Check Interval

Choose a frequency that matches the repo's activity level:

Repo ActivitySuggested ScheduleCron Expression
Very active (100+ events/day)Every 15 minutes*/15 * * * *
Moderately activeEvery 30 minutes*/30 * * * *
Low activityEvery 2 hours0 */2 * * *
Releases onlyOnce daily0 9 * * *

Step 3: Filter by Event Type

You don't have to monitor everything. Tailor the prompt to your needs:

Releases only:

yaml
cron:
  - name: release-watcher
    schedule: "0 9 * * *"
    channel: telegram
    prompt: |
      Check for new releases published in the last 24 hours on:
      - ollama/ollama
      - astral-sh/ruff
      - denoland/deno
      For each new release, include the version number and a one-line summary of changes.
      If no new releases, do NOT send a message.

Issues with specific labels:

yaml
cron:
  - name: bug-watcher
    schedule: "*/30 * * * *"
    channel: telegram
    prompt: |
      Check the steipete/moltbot repo for new issues labeled "bug" or "critical"
      opened in the last 30 minutes.
      If found, include the issue title, number, and a brief excerpt.
      If none, say nothing.

PRs awaiting your review:

yaml
cron:
  - name: review-reminder
    schedule: "0 10,14 * * 1-5"
    channel: telegram
    prompt: |
      Check GitHub for any open pull requests where I am requested as a reviewer.
      List them with repo name, PR title, and how long they've been waiting.
      If none are pending, do NOT send a message.

Step 4: Multi-Repo Dashboard

For a broader view, create a daily digest that covers all your projects:

yaml
cron:
  - name: daily-github-digest
    schedule: "0 9 * * 1-5"
    channel: telegram
    prompt: |
      Generate a GitHub activity digest for the past 24 hours across these repos:
      - steipete/moltbot
      - langchain-ai/langchain
      - ollama/ollama

      For each repo, summarize:
      - New issues opened (count + notable titles)
      - PRs merged (count + notable titles)
      - New releases (version + highlights)

      Format as a clean report with repo headers.
      Skip repos with zero activity.

Edge Cases and Troubleshooting

  • GitHub API rate limits: Unauthenticated requests are limited to 60/hour. Authenticated requests get 5,000/hour. If you are monitoring many repos at short intervals, make sure your GitHub MCP tool uses a personal access token.
  • Time window mismatches: If your cron runs every 30 minutes but the GitHub tool checks "last 30 minutes," there is a small risk of missing events at the boundary. You can overlap slightly by checking "last 35 minutes" to be safe.
  • Private repos: Ensure your GitHub token has the repo scope if you need to monitor private repositories.
  • Large repos with high activity: For extremely active repos (e.g., kubernetes/kubernetes), narrow your filter to specific event types or labels. Otherwise, the summary may be too long or hit token limits.

Pro Tips

  • Combine with memory for context. When Moltbot notifies you about a new issue, you can reply with notes: "This is related to the refactor we discussed last week." Memory stores this, so future notifications about the same topic carry context.
  • Use different channels for different urgency levels. If Moltbot supports multiple notification channels, route critical repo alerts (production bugs) to a high-priority channel and routine updates to a daily digest.
  • Track competitor repos. Monitor open source projects in your space to stay aware of new features, architectural decisions, and community discussions.
  • Create issues from Telegram. This recipe is about monitoring, but remember you can also create issues directly: "Create an issue on steipete/moltbot titled 'Add webhook support' with a description of the feature." See Code Snippets on the Go for more.
  • Pair with the Daily Briefing. Instead of a separate GitHub cron job, incorporate repo checks into your Personalized Daily Briefing for a single consolidated morning message.

Community tutorial site — not affiliated with official Moltbot