You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编辑DatoCMS内容后能否通过webhook触发Github Pages自动部署?

实现方案

你可以通过GitHub Actions配合DatoCMS Webhook实现自动部署,全程无需切换到第三方托管平台,具体操作步骤如下:

1. 配置GitHub自动部署工作流

在你的项目仓库根目录新建.github/workflows/deploy.yml文件,写入以下配置:

name: 自动部署Gatsby到Github Pages
on:
  # 支持手动触发工作流,方便调试
  workflow_dispatch:
  # 接收外部webhook触发的事件
  repository_dispatch:
    types: [datocms_content_update]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取项目代码
        uses: actions/checkout@v4
      - name: 配置Node环境
        uses: actions/setup-node@v4
        with:
          # 替换为你本地使用的Node.js版本,避免构建兼容性问题
          node-version: 18
          cache: 'yarn'
      - name: 安装依赖
        run: yarn install
      - name: 构建Gatsby站点
        run: yarn build
        env:
          # 你本地构建需要的DatoCMS令牌等环境变量,都在仓库Settings-Secrets and variables-Actions里配置
          DATO_CMS_TOKEN: ${{ secrets.DATO_CMS_TOKEN }}
      - name: 部署到gh-pages分支
        uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public

配置完成后提交推送至仓库主分支。

2. 生成GitHub访问令牌

访问GitHub个人设置的开发者设置页,生成一个新的个人访问令牌(PAT),勾选repo权限,保存好生成的令牌值备用。

3. 配置DatoCMS Webhook

登录DatoCMS后台,进入Webhook管理页新建Webhook:

  • 触发条件勾选内容发布/更新相关的事件
  • 请求方法选择POST
  • 请求URL填写:https://api.github.com/repos/你的GitHub用户名/你的仓库名/dispatches
  • 请求头添加两个字段:
    • Authorization:值为token 你上一步生成的PAT
    • Accept:值为application/vnd.github.v3+json
  • 请求体填写固定JSON:{"event_type": "datocms_content_update"}
    保存Webhook配置即可。

验证效果

在DatoCMS中修改内容并发布,即可触发GitHub自动运行部署工作流,等待数分钟后站点内容就会自动更新。如果遇到部署失败,可以在仓库的Actions tab查看对应工作流的运行日志排查问题。

内容的提问来源于stack exchange,提问作者lewis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:24:03