Skip to content

fictivekin/sanity-plugin-webhooks-trigger

 
 

Repository files navigation

⚡️ Trigger Webhooks in Sanity ⚡️

Trigger webhooks right from your Sanity Studio.
Useful for rebuilding your website using a static site generator (Astro, SvelteKit, Next.js, 11ty, Jekyll, Hugo, etc).

screenshot

Motivation

Instead of rebuilding your site every single time a document is published using the GROQ-powered webhooks, just do it when you (or your client) are done editing content!

For instance, you can trigger a build on Vercel, Netlify, Cloudflare Pages, GitHub Actions, or any webhook.

Behind the scenes, it stores a document in your Sanity dataset for each webhook, with its name, URL, method (POST/GET) and the encrypted auth token if needed. It also shows the last run status and date.

Openly –and heavily– inspired from sanity-plugin-vercel-deploy by ndimatteo.

Installation

# npm
npm i sanity-plugin-webhooks-trigger

# yarn
yarn install sanity-plugin-webhooks-trigger

# pnpm
pnpm i sanity-plugin-webhooks-trigger

# bun
bun i sanity-plugin-webhooks-trigger

Usage

Add it as a plugin in sanity.config.ts (or .js):

import { defineConfig } from 'sanity'
import { webhooksTrigger } from 'sanity-plugin-webhooks-trigger'

export default defineConfig({
  //...
  plugins: [
    webhooksTrigger({
      // title: 'Deploy',
      // text: 'Custom text',
      // encryptionSalt: 'replace-me-with-a-strong-string',
      // /** You can customize the event type name to trigger on your Github workflows */
      // githubEventType: 'webhook-trigger',
      // /** Disable the "Trigger All" button when there are multiple webhooks */
      // triggerAll: false,
    })
  ],
})

⚠️ If you are using an auth token with your webhook, it is strongly recommended to use an encryption salt, otherwise it could be exposed! You can generate one using openssl rand -hex 64 or any other method.

License

MIT © Félix Péault (Flayks)

Develop & test

This plugin uses @sanity/plugin-kit with default configuration for build & watch scripts.

See Testing a plugin in Sanity Studio on how to run this plugin with hotreload in the studio.

About

Manually trigger Webhooks right from your Sanity Studio to rebuild websites

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.0%
  • JavaScript 6.0%