← Blueprints

BLUEPRINT · github-release-watcher

GitHub release watcher

Alerts you when a repository publishes a new release. Works on any public repo with no GitHub token. Ships watching Bun; edit the repo in the URL.

Runs
every hour
Leash
required

How it decides

  1. OBSERVE · source rest_api extract
  2. FILTER · gate fast_path_diff
  3. REASON · reason no model
  4. ACT · act notify_webhook ●write_state

● = touches the outside world (leashed by default)

What it costs

No model calls. No GitHub token for public repos.

What you'll need

WEBHOOK_URL

Make it yours

Edit the repo in the URL.

sources.releases.url
https://api.github.com/repos/oven-sh/bun/releases

Full YAML

blueprints/github-release-watcher.yaml
# Watches a GitHub repo for new releases via the public API (no token needed
# for public repos). Edit the repo in the URL.
blueprint:
  id: github-release-watcher
  title: GitHub release watcher
  description: >-
    Alerts you when a repository publishes a new release. Works on any public
    repo with no GitHub token. Ships watching Bun; edit the repo in the URL.
config:
  synth:
    name: Release watcher
    goal: Tell me when the repo I'm watching ships a new release.
    schedule_seconds: 3600
  requires_credentials:
    - WEBHOOK_URL
  sources:
    - id: releases
      primitive: rest_api
      config:
        url: https://api.github.com/repos/oven-sh/bun/releases
        max_pages: 1
        max_items: 10
  transforms:
    - id: tags
      primitive: extract
      config:
        items: $sources.releases.items
        field: tag_name
  fast_path:
    primitive: fast_path_diff
    inputs:
      current: $transforms.tags.values
      previous: $state.seen_tags
  actions:
    - if: $fast_path.triggered
      primitive: notify_webhook
      config:
        url: $secrets.WEBHOOK_URL
        body:
          alert: New release published
          releases: $fast_path.diff
    - always: true
      primitive: write_state
      config:
        seen_tags: $transforms.tags.values
        checked_at: $tick.started_at

Install

In the control room

Blueprints → GitHub release watcher → Shadow, then Deploy.

To change something first (see Make it yours): View config, copy the JSON, and paste it into + Install a Synth.

With your AI

Ask: "Clone the github-release-watcher blueprint." It uses caedos_blueprints, then validates, shadows and deploys.

Related use case