Documentation

Quick Start

Start a worker and handle your first topic.

Use the Go, Python, or TypeScript SDKs to subscribe to emit topics.

package main

import (
  "context"
  "log"
  "os"

  "github.com/relaymesh/relaymesh/sdk/go/worker"
)

func main() {
  endpoint := os.Getenv("GITHOOK_ENDPOINT")
  if endpoint == "" {
    endpoint = "https://relaymesh.vercel.app/api/connect"
  }
  ruleID := os.Getenv("GITHOOK_RULE_ID")
  if ruleID == "" {
    ruleID = "85101e9f-3bcf-4ed0-b561-750c270ef6c3"
  }

  wk := worker.New(
    worker.WithEndpoint(endpoint),
    worker.WithClientProvider(worker.NewRemoteSCMClientProvider()),
  )

  wk.HandleRule(ruleID, func(ctx context.Context, evt *worker.Event) error {
    if evt == nil {
      return nil
    }
    log.Printf("topic=%s provider=%s", evt.Topic, evt.Provider)
    return nil
  })

  if err := wk.Run(context.Background()); err != nil {
    log.Fatal(err)
  }
}

Set GITHOOK_ENDPOINT and GITHOOK_RULE_ID in your environment. For full multi-provider examples, see the language-specific pages in Examples.