记录通过 AI Agent 聊天界面零手动终端操作完成 GitHub 仓库初始化、CI/CD 流水线搭建、DNS 配置到 Cloudflare Pages 部署的全过程。
概述
本文记录了通过 AI Agent 聊天界面,零手动终端操作完成以下全部工作的过程:
GitHub Organization 创建与仓库初始化 本地项目清理、commit、push CI/CD 自动部署流水线搭建 DNS 配置(Cloudflare API) GitHub Pages 自定义域名尝试(失败) Cloudflare Pages 部署(成功) 自定义域名绑定 GitHub Actions Secrets 自动配置
所有操作均通过 Agent 调用 shell 命令、API 请求、gh CLI、npx wrangler 等工具完成,用户只需在聊天窗口下达指令和提供必要的 token。
我是 AI灵感闪现,使用 OpenClaw 小龙虾 让 AI 自主管理工作和生活上的问题;使用 Claude Code + BMAD AI 驱动敏捷开发框架,让 AI 自主开发和交付软件来表达想法和灵感。是 MoneyMind 省钱思维 App 和 HeartPetBond 心宠纽带 App 开发者。正在实践和分享让 AI 自主解决健康、生活、投资和等方面的问题。我尽可能让 AI 自己完成从目标到交付以及演进的闭环,以最少的人为交互与监督,让 AI 自己跑流程。我只给 AI 想法或目标,全程不陪跑,让 AI 自主运行类似 Tesla FSD 自动驾驶。
一、项目背景
目标
为某项目群建立公开网站,绑定自定义域名,由 Astro 框架构建,推送即自动部署。
项目结构
project-mgr | ||
project-ops | ||
project-astro | ||
project-website |
二、阶段一:GitHub Organization 与仓库初始化
2.1 创建 GitHub Organization
通过 gh CLI 创建组织,指定 GitHub 账号身份。
2.2 创建仓库
Agent 通过 GitHub API 创建了 4 个仓库(3 个 private + 1 个 public)。
2.3 SSH 身份问题
推送过程中发现 git@github.com 默认走的 SSH 身份被识别为错误账号,导致权限异常。
解决方式: Agent 在各仓库 .git/config 中统一配置指定 SSH key 和用户身份:
[core]sshCommand = ssh -i ~/.ssh/id_ed25519_dedicated -F /dev/null[user]name = DedicatedAccountemail = actions@users.noreply.github.com三、阶段二:项目清理与首次推送
3.1 主项目清理
初始状态非常脏,存在大量本地过程文件。Agent 创建 .gitignore 排除调试产物和系统文件,完成首次 commit + push。
3.2 Astro 项目初始化
Agent 完成了:
生成 .gitignore(Astro 标准忽略项)首次 commit + push 补充 src/网站源码新增 GitHub Actions workflow
3.3 推送结果
所有 4 个仓库成功推送到 GitHub Organization。
四、阶段三:CI/CD 自动部署流水线
4.1 初版 workflow
单 job 流程:checkout → build → rsync 到产物仓 → push。
4.2 改造为双通道部署
改为三段并行结构:
jobs:build:# 构建 + 上传 artifactdeploy-github:# 推送到产物仓 repodeploy-cloudflare:# 部署到 Cloudflare Pages关键设计:
build job 构建 Astro 并上传 artifact deploy-github 和 deploy-cloudflare 并行消费 artifact Cloudflare 部署使用 cloudflare/wrangler-action@v3
4.3 GitHub Actions Secrets 配置
Agent 通过 gh CLI 自动配置了 3 个 Secrets:
PUBLIC_WEBSITE_PUSH_TOKEN | |
CLOUDFLARE_API_TOKEN | |
CLOUDFLARE_ACCOUNT_ID |
五、阶段四:DNS 与域名配置
5.1 Cloudflare DNS 配置
Agent 通过 Cloudflare API 自动完成所有 DNS 操作,创建 CNAME 记录和 TXT 验证记录。
5.2 GitHub Pages 自定义域名(失败)
这是整个过程中最大的卡点,花费了约 3 天时间。
问题表象
GitHub org domains 页面显示域名已验证通过 但 Pages 设置页始终报错: You must verify your domain before being able to use itGitHub Pages API 始终返回 cname: null
排查过程
PAT 权限不足 — 旧 PAT 缺少 Pages 管理权限,API 返回 403。重新生成后解决。 DNS challenge 过期 — GitHub 给了新的 TXT challenge,Agent 通过 Cloudflare API 更新 TXT 记录。 自动重试监控 — Agent 创建 cron job 每 5 分钟自动重试绑定,连续重试多次均失败。
结论
GitHub Pages 对 org-level domain verification 到 repo-level Pages attachment 的状态同步存在 bug。DNS、token、repo 内容均无问题,纯后端状态不同步。
5.3 Cloudflare Pages 部署(成功)
作为并行方案,Agent 完成了:
创建 Cloudflare Pages 项目 — 通过 API 调用 首次部署 — 从 GitHub 克隆产物仓,用 wrangler 直接部署 绑定自定义域名 — 通过 API 关联域名 更新 DNS CNAME — 从指向 GitHub Pages 改为 Cloudflare Pages 验证 — curl -I确认 HTTP 200,证书自动签发
六、部署架构
project-astro (源码, Private) │ ├── push to main │ ▼GitHub Actions workflow │ ├── build (Node 22, npm, Astro) │ │ │ ▼ artifact: dist/ │ ├── deploy-github ──► project-website repo │ │ │ ▼ │ GitHub Pages (fallback) │ └── deploy-cloudflare ──► Cloudflare Pages │ ▼ https://your-domain.example.com (生产)七、AI Agent 在整个过程中的角色
Agent 直接完成的操作
exec | ||
exec | ||
exec | ||
write | ||
exec | ||
exec | ||
cron | ||
write |
用户手动完成的操作
Agent 工具链
AI Agent├── exec → shell 命令(git, curl, gh, npx wrangler, dig)├── write → 文件创建/编辑(workflow YAML, 文档)├── read → 文件读取(现有配置、文档)├── cron → 定时任务(自动重试监控)├── memory_search → 历史记录检索└── web_fetch → 网页内容抓取八、踩坑总结
1. SSH 身份冲突
问题: 多个 GitHub 账号共用同一台机器,git@github.com 默认走错误身份。 解决: 在 .git/config 中指定 sshCommand 使用特定 SSH key。
2. GitHub PAT 权限不足
问题: Fine-grained PAT 未授予 Pages 管理权限,API 返回 403。 解决: 重新生成 PAT,加上 Administration + Pages 的 Read and write 权限。
3. GitHub Pages domain verification 状态机卡死
问题: Org domains 页面显示 verified,但 Pages 后端始终不承认。 解决: 放弃 GitHub Pages 自定义域名,改用 Cloudflare Pages。 教训: GitHub Pages 对 org-level domain verification 到 repo-level Pages attachment 的同步不可靠,不值得死磕。
4. Cloudflare Token 权限分级
问题: 用于 DNS 的 token 没有 Cloudflare Pages 的 account 级别权限。 解决: 在 Cloudflare dashboard 编辑 token,添加 Account / Cloudflare Pages / Edit。
5. Cloudflare Pages 自定义域名 DNS 验证
问题: 首次绑定自定义域名时,CNAME 设为 proxied 模式导致 Cloudflare Pages 看不到 CNAME。 解决: 改为 DNS only(proxied: false)。
九、时间线
| 网站返回 200 ✅ | |
十、最终状态
✅ 自定义域名正常访问 ✅ Cloudflare Pages 自动部署就绪 ✅ GitHub 产物仓同步就绪 ✅ CI/CD 双通道 workflow 已就位 ✅ 所有 Secrets 已配置 ⚠️ GitHub Pages custom domain 仍未绑定(不影响生产)
总结
整个过程展示了 AI Agent 作为 DevOps 协作者的能力边界:
擅长的:API 调用、CLI 操作、文件编辑、自动重试、多步骤编排 需要人类的:安全凭据管理、浏览器交互、权限变更审批 最终效率:约 4 天跨度内,实际人工操作时间不超过 20 分钟(均为提供 token 和确认操作),其余全部由 Agent 完成
这不是 Agent 替代 DevOps 工程师,而是将"指令执行"层完全委托给 Agent,人类专注于决策和安全审批。这才是 AI 辅助开发的正确打开方式。


全网首发?第一款 GLM 4.7 + Claude Code AI 自主开发的心宠纽带 App 首次通过 App Store 审核并上架发布
智谱 GLM 4.7 模型 AI 自主开发 HeartBetBond 心宠纽带 App,从想法到提交 App Store 仅用 12 天
实战测评:用 Claude Code + BMAD + GLM-4.7 打造 HeartPetBond App (心宠纽带)
加入 AI灵感闪现 微信群
长按下图二维码进入 AI灵感闪现 微信群

长按下图二维码添加微信好友 VibeSparking 加群

关注 AI灵感闪现 微信公众号

夜雨聆风