编辑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 你上一步生成的PATAccept:值为application/vnd.github.v3+json
- 请求体填写固定JSON:
{"event_type": "datocms_content_update"}
保存Webhook配置即可。
验证效果
在DatoCMS中修改内容并发布,即可触发GitHub自动运行部署工作流,等待数分钟后站点内容就会自动更新。如果遇到部署失败,可以在仓库的Actions tab查看对应工作流的运行日志排查问题。
内容的提问来源于stack exchange,提问作者lewis
相关产品推荐
相关产品推荐

