Firebase 托管 Webhook

Firebase Hosting Webhooks

我尝试使用 Firebase 托管解决这个特定用例,它如下:

  1. 我正在使用 Gridsome 生成静态网站
  2. 在构建之前,Gridsome 使用 Graphql 并从 Headless CMS 中抓取一些博客 posts,然后用于为每个博客创建静态页面
  3. 目前,每当我通过 Github 合并到 master 时,Gridsome 构建会自动部署到 Firebase Hosting(这已经很好用了)

我面临的问题是,每当我在无头 CMS 上发布新博客 post 时,我都想触发 Gridsome 构建 + Firebase 托管部署(它可以选择创建一个 POST 在新博客上 post)。我知道这在 Vercel 等其他解决方案上是可能的,但现在我正在使用 Firebase 并且想坚持使用该套件。

我试过使用 REST API 但没有任何运气,而 Github Webhooks 以相反的方式工作并且没有解决我的问题。我认为可能有机会调用 Firebase 函数并使用 CLI 进行部署或其他操作。

我想知道这个功能是否存在,以及如何实现这个场景。

谢谢。

我假设您使用 Github 操作来构建您的项目,然后将其部署到 firebase。

我推荐给您的最简单的解决方案是设置您的 Action,使其不仅在推送到您的 master 分支时触发,而且在请求时触发。

步骤

repository_dispatch 事件设置你的操作触发器

on:
  repository_dispatch:

然后使用 repoworkflow 权限为您的 Github 帐户创建一个 Access token

现在您只需在 Header.

中使用您的授权令牌在以下 URL https://api.github.com/repos/<username>/<repo>/dispatches 上设置您的 CMS Post 请求

示例:

curl --url 'https://api.github.com/repos/<USERNAME>/<REPO>/dispatches' \
  --header 'authorization: Bearer <TOKEN>' \
  --data '{"event_type": "content updated"}'

现在,只要您从 CMS 向端点发出 POST 请求,您的 Action 也应该分派。