能否不通过GitHub官网完成新GitHub Pages站点的首次部署?
解决方案
你之前调用的是触发已有Pages站点构建的接口,本身不支持首次创建站点,直接调用GitHub官方提供的创建Pages站点的PUT接口,即可完全无需打开仓库网页完成首次Pages启用,无需使用Selenium这类浏览器自动化工具。
1. 直接用curl实现
curl -u {username}:{access_token} -X PUT \ -H "Accept: application/vnd.github.v3+json" \ https://api.github.com/repos/{username}/{repo}/pages \ -d '{"source":{"branch":"gh-pages","path":"/"}}'
参数可根据需求调整:branch字段填你要作为Pages源的分支名(比如main),path字段可选/(根目录)或者/docs(对应仓库docs目录)。
2. 用GitHub CLI(gh)实现
你之前使用gh未成功是未调用对应的启用命令,直接用官方内置子命令即可操作:
# 启用Pages,指定源分支为gh-pages、源路径为根目录 gh pages enable --branch gh-pages --path / --repo {username}/{repo}
如果使用的旧版本gh没有pages子命令,也可以直接调用gh api发起PUT请求:
gh api -X PUT repos/{username}/{repo}/pages \ -f source[branch]=gh-pages \ -f source[path]=/
注意事项
- 调用接口前请确保你的access token拥有对应仓库的
repo权限,如果是细粒度token,需要额外开启Pages的读写权限 - 请提前将你设置为Pages源的分支推送到仓库,避免启用后首次构建失败
- 启用成功后再调用你之前的POST接口即可触发自定义构建,也可以等待GitHub自动触发首次构建
内容的提问来源于stack exchange,提问作者Rojan Rajbhandari
相关产品推荐
相关产品推荐

