集成

github-pages-publish

试用

把「已有的」静态网页文件(单个 HTML 或整个网站目录)安全发布到 GitHub Pages,生成可公开访问、能分享的网址链接。当用户已有现成网页,想「发到网上」「部署上线」「发布网页」「生成分享链接」时使用;本技能只做「发布已有文件」,不负责从零生成网站。提供可执行的 deploy.py 脚本(整站增量上传 / 单文件上传 / 仅启用 Pages 三种模式),纯标准库无额外依赖,逐文件增量上传、绝不覆盖远程已有内容,并已回写真实踩坑(token 写权限、连接器只读、force 覆盖风险)。仅适用于纯静态内容;涉及后端、数据库、登录或敏感数据时不要用。

它能做什么

把「已有的」静态网页文件(单个 HTML 或整个网站目录)安全发布到 GitHub Pages,生成可公开访问、能分享的网址链接。当用户已有现成网页,想「发到网上」「部署上线」「发布网页」「生成分享链接」时使用;本技能只做「发布已有文件」,不负责从零生成网站。提供可执行的 deploy.py 脚本(整站增量上传 / 单文件上传 / 仅启用 Pages 三种模式),纯标准库无额外依赖,逐文件增量上传、绝不覆盖远程已有内容,并已回写真实踩坑(token 写权限、连接器只读、force 覆盖风险)。仅适用于纯静态内容;涉及后端、数据库、登录或敏感数据时不要用。

技能文档

静态网页发布器(GitHub Pages)

概述

本技能把「本地静态文件 → 公开网址」这条链路自动化:创建 GitHub 仓库、上传网页文件、启用 GitHub Pages 自动发布、验证并返回访问地址。适合个人主页、项目介绍页、文档站、汇报页等纯静态站点。

适用与不适用

适用:纯 HTML/CSS/JS 静态内容,无服务端逻辑、无数据库、无登录。

不适用(先提醒用户)

  • 需要后端接口、数据库、用户系统的站点 → 改用 Vercel / 云托管等
  • 含敏感数据或客户信息的页面 → Pages 免费版公开可见,禁止托管

前置检查

  1. 确认要部署的静态文件目录,必须包含 index.html(否则访问返回 404)。
  2. 确认仓库名。规则:
    • 用户/组织主页:仓库名必须是 .github.io,访问地址即 https://.github.io,发布分支用 main
    • 项目页:任意仓库名 repo,访问地址为 https://.github.io/,发布分支默认 gh-pages
  3. 确认站点是否有构建步骤(如 Hugo / Jekyll / 静态生成器):
    • 无构建 → 直接托管静态文件
    • 有构建 → 需搭配 GitHub Actions workflow(见 references/pages-api.md

部署流程

第一步:确定认证方式

按优先级探测可用能力,决定走哪条通道:

  1. GitHub MCP 已连接(推荐)→ 用 MCP 工具完成仓库创建与文件上传,无需本地 token。注意:MCP 连接器可能是只读权限,创建仓库/推送一旦返回 403 Resource not accessible by integration,立即改走通道 B(PAT),不要反复重试。
  2. 本地有 GitHub token(环境变量 GITHUB_TOKEN / GH_TOKEN,或用户提供 PAT)→ 直接运行 scripts/deploy.py 或调 REST API 全自动完成。
  3. 两者都没有 → 询问用户提供 PAT,或改用 MCP + 手动启用 Pages。

第二步:通道 A —— 通过 GitHub MCP(无需本地 token)

  1. 创建仓库(如不存在):
    • 调用 GitHub MCP create_repository,参数 name(仓库名)、visibility 设为 public(Pages 免费版要求公开)。
  2. 上传静态文件:
    • 优先调用 push_files 批量上传目录内全部文件(保持相对路径)。
    • 文件多时可用 create_or_update_file 逐个创建。
  3. 启用 Pages:
    • 运行 python scripts/deploy.py --enable-only --repo [--owner ] [--branch ];脚本会探测本地 token。
    • 若无 token,脚本会输出精确的手动启用步骤(Settings → Pages → Source 选分支 → Save),引导用户完成这一下。

第三步:通道 B —— 本地脚本全自动(需要 token)

运行:

python scripts/deploy.py --dir <静态文件目录> --repo <仓库名> [--owner ] [--branch gh-pages]

脚本自动完成:创建/复用仓库 → 用 contents API 增量上传文件 → 启用 Pages → 轮询部署状态 → 输出 URL。整站上传采用「逐文件增量同步」:只创建/更新本地有的文件,绝不覆盖或删除远程已有的其他文件,从机制上彻底规避 git push --force 丢数据的风险。

token 来源:--token 参数 > GITHUB_TOKEN > GH_TOKEN。若均缺失,脚本报错并给出获取 PAT 的指引。

PAT 权限要求(务必先向用户讲清,否则上传会被 403 拒绝):

  • classic tokenghp_ 开头):生成时勾选 repo 即可。
  • fine-grained tokengithub_pat_ 开头):默认「Contents」权限为只读,必须把 Permissions → Contents 改为 Read and write,且 Repository access 覆盖目标仓库(或选 All repositories)。

变体:上传单个文件到现有仓库(不覆盖 index.html)

当目标仓库已存在且已启用 Pages,只需追加一个页面时,直接用 deploy.py --file 或 REST API 上传单个文件,不依赖 git、不会覆盖现有 index.html

PUT /repos/{owner}/{repo}/contents/{英文文件名}.html
Body: { "message": "...", "content": "", "branch": "main" }

文件名用英文(如 jiuzhaigou-vs-leshan.html),避免中文文件名导致 URL 被百分号编码。

第四步:验证与交付

  1. 构造访问地址并验证(HTTP 200):
    • 用户/组织主页:https://.github.io
    • 项目页:https://.github.io/
    • 单文件:https://.github.io//
  2. 注意:GitHub Pages 首次部署通常需要 1–3 分钟,刚启用时可能 404,稍等重试。
  3. 把最终网址告知用户,或通过 present_files 的 URL 模式让用户直接访问。
  4. 安全收尾:部署完成后主动提醒用户,临时 PAT 已用完,可去 https://github.com/settings/tokens 撤销(Delete),下次再生成。

自动发布说明

GitHub Pages 采用「提交即自动发布」:每次向发布分支提交新内容(无论 git push 还是 contents API),GitHub 自动重新构建并部署,无需手动操作。因此「自动发布」无需额外配置即生效。若站点需要构建步骤(静态生成器),改用 GitHub Actions 实现自动构建发布,workflow 模板见 references/pages-api.md

常见问题

  • 刚部署 404:首次部署需 1–3 分钟;用 REST API GET /repos/{owner}/{repo}/pagesstatus(building → built),轮询直到 built 再验证。确认仓库 public;确认 index.html 在发布分支根目录。
  • 上传返回 403 Resource not accessible by integration:GitHub MCP 连接器是只读权限,改用 PAT(通道 B)。
  • 上传返回 403 Resource not accessible by personal access token:PAT 缺写入权限——fine-grained token 需把 Contents 设为 Read and write,或改用 classic token 勾 repo
  • 更新不生效:可能是浏览器/CDN 缓存,稍等或强制刷新;确认 push 到了正确的发布分支。
  • 私有仓库能否用 Pages:免费版不行,需 GitHub Pro 等付费订阅。
  • URL 路径:项目页 URL 包含仓库名,路径区分大小写。

资源

  • scripts/deploy.py —— 全自动部署脚本(token 模式):--dir 整站增量上传、--file 单文件上传、--enable-only 仅启用 Pages;全部走 contents API,无 git、无 force 覆盖
  • references/pages-api.md —— REST API 端点、GitHub Actions workflow 模板、故障排查

相关技能

把本地 Agent / Skill / 工具包标准化发布到 GitHub 公开仓库。当用户要把本地文件转成开源 skill 上传时触发。 完整工作流:脱敏检查 → 文件结构对齐 github-project-radar 标准 → 建空仓 → 逐文件推送 → 补 topics / description / release。封装了今天踩过的所有坑(auto_init README 覆盖、URL 转码、 私改公开、topic 清理)。一次成功不再返工。

将当前项目中的 Skill 发布到 GitHub 并同步到 ClawHub。新项目自动走完流程,已有仓库的项目会总结变更、确认提交信息和建议版本号。

16 次安装

将本地已编写完成的 SKILL.md 技能目录一键发布到多个公开市场(ClawHub、腾讯 SkillHub、 skills.sh、LobeHub、SkillsMP、Agensi、Coze、ClawMart),自动完成格式校验、双语 README、 敏感文件清理、Git 版本打标、串行发布与结果汇总。 当用户要把已经写好的 SKILL.md 同时分发到多个公开市场时使用——即使他们只说 "发布 skill"、"publish to clawhub"、"ship to marketplace"、"一键发布"或"上架 skill"。 不用于:纯本地 skill 管理、未完成 skill 的撰写、单个市场的单独发布指引。

Quickly open-source a local skill to GitHub (primary) and optionally clawhub.com. Workflow: slug pre-check, fork to opensourceskills, strip internal info, normalize SKILL.md, generate LICENSE/README, init git, push to GitHub with configurable token source, and optionally publish to clawhub. Use when the user says "open-source this skill", "把这个 skill 开源", "发到 github", "publish skill publicly", or "把本地 skill 发开源". Hard rules: never modify the original skill in place, never auto-add force/yes flags, never write tokens to git/remote/memory, and ask the user at decision points.

1 次安装

Turn an idea into a live webpage in minutes, no code and no hosting setup. Use when a non-technical user wants to publish a webpage, landing page, one-pager, portfolio, or any simple site to the internet, or says things like put my idea online, publish my website, host my page, share my idea, or make a landing page. The agent writes the page, packages it, deploys to goclawgo, and returns a shareable URL.

1 次安装

Generate a beautiful, deployable HTML introduction page for any AgentSkill. Reads USAGE.md (preferred) or SKILL.md, parses name, description, and feature sec...

1 次安装