拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从 GitHub 同步私有技能到 Claude Code 与 Codex:Jarvis Registry Skill 网关与 AI Skills CLI 实战

从 GitHub 同步私有技能到 Claude Code 与 Codex:Jarvis Registry Skill 网关与 AI Skills CLI 实战

从 GitHub 同步私有技能到 Claude Code 与 Codex:Jarvis Registry Skill 网关与 AI Skills CLI 实战

【免费下载链接】jarvis-registryConnect any AI copilot or autonomous agent to your enterprise tools — through a single, secure MCP/Agent gateway with built-in identity, access control, and full observability.项目地址: https://gitcode.com/gh_mirrors/ja/jarvis-registry

Jarvis Registry 的 Skill 网关(Skill Gateway)可以把你存放在 GitHub 私有仓库中的 AI Skills 单向同步到企业私有注册表中,再借助 AI Skills CLI 一键同步分发到 Claude Code、Codex 和 GitHub Copilot 环境。整个过程由 ACL 权限与 OAuth 授权保护,技能内容无需发布到任何公开市场,是团队统一分发"私有技能"的完整方案。

为什么需要 Skill 网关

很多团队会在 GitHub 上沉淀一批 SKILL.md 技能文件,但直接把私有仓库内容复制进各个开发者的 Claude Code 或 Codex 配置目录,会带来三个问题:

  • 内容分散:谁拿到的是哪个版本无法追溯,技能更新靠口头通知
  • 权限失控:私有技能可能被拷贝到不该看到的机器上
  • 凭据散落:每个脚本都带着 GitHub 和注册表的 token

Skill 网关把注册表变成技能的唯一事实来源:

  1. 托管:在注册表 UI 或 API 中创建、编辑技能,按分类、标签组织并跟踪版本
  2. 治理:技能默认私有,按 VIEW / EDIT / DELETE / SHARE 四级 ACL 控制每个用户的访问
  3. 分发:CLI 只同步"当前用户有权访问"的技能,权限变更后自动对账(reconcile)

功能细节可参考 docs/features/skill-gateway.md 与 docs/features/ai-skills-cli.md。

三步接入:GitHub 同步源创建指南

第一步:创建 Skill 同步源

在注册表中新建同步源时,核心配置只有 4 项:

配置项说明
owner/repoGitHub 仓库(支持私有仓库)
ref分支或标签,默认main
paths要扫描的目录,如["skills/"],每个直接子目录含SKILL.md即被识别为一个技能
GitHub App 凭据githubAppClientId与githubAppClientSecret(服务端 AES-CBC 加密存储,响应中永不返回)

同步是一次只进的单向管道:解析 ref → 下载不可变的仓库快照 → 发现SKILL.md→ 逐技能解析校验 → 原子性落库。路径穿越、符号链接、超大文件和"解压炸弹"都会在提取阶段被拦截,单个技能出错只记录错误项,不会破坏整批同步。完整字段与校验规则见 docs/design/skill-sync-source-api.md。

第二步:授权 GitHub App(PKCE 安全流程)

授权分三步,顺序不能乱:

  1. Connect GitHub:浏览器整页跳转到 GitHub 授权页(采用 PKCE + state 参数防 CSRF),令牌加密存入服务端
  2. Test connection:以dryRun: true触发只读校验,确认仓库、ref 与 GitHub App 安装范围都正确——这一步不产生任何写入
  3. Sync now:真正的同步任务落库为持久化 Job,带租约(lease)机制,进程崩溃后会自动接管重试

一个常见坑:GitHub App 必须安装在对应组织并勾选目标仓库,且 Contents 权限为只读。否则授权能成功,但 API 调用返回 404,同步任务会报github_not_found错误。

第三步:跟踪同步任务

每次同步都会经历queued → downloading → extracting → discovering → applying → completed阶段,任务详情里可以看到discoverySummary(发现了多少技能)与applySummary(新建 / 更新 / 删除 / 失败各多少条)。上游被删除的技能会在下次同步时被自动清理,保持两端一致。

用 AI Skills CLI 同步到 Claude Code 与 Codex

技能进入注册表后,开发者在自己机器上只需固定三条命令:

jarvis-registry configure jarvis-registry auth login jarvis-registry skills sync --mode claude # 或 codex、copilot
  • 凭据保存在操作系统 keyring 中,不写进任何脚本
  • 同步是访问感知且可重复执行的:新增的技能会被投递、变更的内容会被更新、权限收回后本地托管技能会被对账清理
  • 支持同步到个人目录或指定项目目录,CLI 自动处理各工具本地的目录布局
  • isExecutable标记的文件同步后会自动chmod +x

CLI 拉取内容使用的是带skills-readscope 的同步接口(docs/design/skills-sync-api.md),每个技能在本地重建为一个标准目录:

<skills-root>/mongoose-to-beanie/ ├── SKILL.md └── references/ └── guide.md

SKILL.md由 frontmatter(name、description、allowed-tools 等)加上正文重建而成,与手工编写的技能文件完全兼容。

权限与安全:私有技能治理要点

  • 技能级 ACL:创建者自动获得 OWNER 权限,其他用户只获得被显式授予的权限;列表和内容接口都会先按 ACL 过滤,无权技能根本不会出现在结果里
  • 文件限制:单文件 5 MiB、单技能 200 个文件、总载荷 10 MiB,保证内容与同步行为可预期
  • 令牌隔离:GitHub 访问/刷新令牌按用户 + 同步源分别加密存储;更换 App 凭据会自动删除旧令牌强制重新授权
  • 双向保护:注册表不向 GitHub 回写任何变更,GitHub 凭据也只保存在服务端

常见问题 FAQ

Q:同步是双向的吗?不是。GitHub 是唯一的技能来源方向(repository → Registry),注册表不会向 GitHub 推送变更。

Q:一个组织里不同用户看到的技能会不同吗?会。CLI 同步是"访问感知"的,每个用户只拿到自己有权查看的技能,这正是私有分发与公开市场的关键区别。

Q:同步失败如何定位?查看任务的skillErrors字段(含技能路径、阶段与错误码),例如skill_name_mismatch表示 frontmatter 的name与文件夹名不一致,file_too_large表示超过 5 MiB 限制。

Q:GitHub 仓库后来新增了仓库给 App 授权,需要重新连接吗?不需要,后续添加的仓库直接生效;但若修改了 App 权限,需要组织管理员接受权限更新。

延伸阅读

  • Skill 网关功能说明:docs/features/skill-gateway.md
  • AI Skills CLI 使用指南:docs/features/ai-skills-cli.md
  • 同步源 API 设计(含 PKCE 时序与状态机):docs/design/skill-sync-source-api.md
  • 技能同步下发 API:docs/design/skills-sync-api.md
  • 前端 GitHub 授权面板实现:frontend/src/pages/FederationRegistryOrEdit/GithubAuthorizationPanel.tsx
  • 前端技能管理页面:frontend/src/pages/Skills/index.tsx

【免费下载链接】jarvis-registryConnect any AI copilot or autonomous agent to your enterprise tools — through a single, secure MCP/Agent gateway with built-in identity, access control, and full observability.项目地址: https://gitcode.com/gh_mirrors/ja/jarvis-registry

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表