Skip to content

feat(skills): support private GitHub skill repos via env tokens (#120)#137

Open
chenanga wants to merge 2 commits intoSaladDay:mainfrom
chenanga:main
Open

feat(skills): support private GitHub skill repos via env tokens (#120)#137
chenanga wants to merge 2 commits intoSaladDay:mainfrom
chenanga:main

Conversation

@chenanga
Copy link
Copy Markdown

@chenanga chenanga commented Apr 28, 2026

#120

背景

当前 Skills 仓库配置只记录 owner/name/branch/enabled,公开仓库可以正常发现和安装,但私有 GitHub 仓库无法下载。这个 PR 增加通过环境变量提供 GitHub token 的能力,同时避免把 token 和 repo 配置持久绑定。

变更内容

  • 下载 GitHub skill 仓库 ZIP 时按优先级读取 token:
    • CC_SWITCH_SKILLS_GITHUB_TOKEN_OWNER_REPO
    • CC_SWITCH_SKILLS_GITHUB_TOKEN_OWNER
    • CC_SWITCH_SKILLS_GITHUB_TOKEN
    • GITHUB_TOKEN
    • GH_TOKEN
  • OWNER / REPO 会转为大写,非字母数字字符转为 _
  • repo 记录结构保持不变,不保存 token
  • 有 token 时优先使用 GitHub API zipball 下载
  • 如果 token 下载失败,会回退到未鉴权 archive 下载,避免坏的全局 token 影响公开仓库
  • 增加 token 优先级、空值跳过、zipball URL 编码相关测试
  • README.mdREADME_ZH.md 中补充私有仓库配置说明

本地验证通过

chenanga added 2 commits April 28, 2026 12:09
Read GitHub tokens from environment variables when downloading skill
repository archives, without persisting tokens in repo records.

- keep SkillRepo storage limited to owner/name/branch/enabled
- prefer repo-specific, owner-specific, and global skill token env vars
- support GITHUB_TOKEN and GH_TOKEN fallback
- use authenticated GitHub zipball downloads when a token is available
- fall back to unauthenticated archive downloads for public repos
- document private repo setup in English and Chinese READMEs
@chenanga chenanga changed the title feat(skills): support private GitHub skill repos via env tokens feat(skills): support private GitHub skill repos via env tokens (#120) Apr 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant