启用 GitHub 一键发布
这是网站管理员只需做一次的配置。普通使用者无需填写这些设置,只需在发布时登录并选择仓库。
1. 注册 GitHub App
打开 GitHub App 注册页面,设置一个不重复的应用名称。主页填写此编辑器的正式网址。
- Callback URL:
编辑器网址/api/auth/callback - Webhook URL:
编辑器网址/api/webhook,勾选 Active。 - Webhook secret:用密码管理器生成一段随机密钥,并保存。
- 开启用户访问令牌过期(Expire user authorization tokens)。
- 允许安装到任何账号(Any account),这样其他人也能发布到自己的仓库。
2. Repository permissions
| 权限 | 级别 |
|---|---|
| Contents | Read and write |
| Pull requests | Read and write |
| Actions | Read-only |
| Checks | Read-only |
| Commit statuses | Read-only |
| Deployments | Read-only |
| Metadata | Read-only(自动) |
订阅事件:Workflow run、Check run、Check suite、Status、Pull request。无需 Administration 或 Workflows 写入权限。
3. 配置 Vercel 环境变量
创建 App 后,记录 App ID、Client ID、应用短名(GitHub App 页面网址最后一段);生成 Client secret 和 Private key。到编辑器的 Vercel 项目 → Settings → Environment Variables,添加以下值,选择 Production。密钥直接填写在平台中,不要粘贴到聊天或提交进仓库。
| 变量名 | 填写内容 |
|---|---|
| APP_ORIGIN | 编辑器正式网址,不带末尾斜线 |
| GITHUB_APP_ID | App ID |
| GITHUB_APP_SLUG | 应用短名 |
| GITHUB_CLIENT_ID | Client ID |
| GITHUB_CLIENT_SECRET | 新生成的 Client secret |
| GITHUB_PRIVATE_KEY | 下载的 .pem 文件全文,包含 BEGIN/END 行 |
| GITHUB_WEBHOOK_SECRET | 与 GitHub Webhook secret 一致 |
| SESSION_SECRET | 独立随机密钥,至少 32 字符;不要与其他密钥共用 |
4. 重新部署并安装 App
保存变量后在 Vercel 重新部署编辑器。到 GitHub App 页面点击 Install App,选择要发布的仓库。然后回到编辑器,登录 GitHub,先用一篇测试文章验证发布。
龍一的博客使用 rancerance512/personal-site、main、src/content/blog、quality.yml。原博客的 Vercel Git 连接继续负责正式部署。
维护
发布回调失败时可在 GitHub App → Advanced → Recent deliveries 查看记录并重新投递;打开编辑器的发布窗口也会重新核对任务。请勿为了自动发布而关闭仓库的审核规则。