125k

2026年8月 - GitHub 私有注册表

使用 GitHub CLI 或令牌,从 GitHub 私有仓库安装注册表项。

现在,GitHub 注册表已支持私有仓库。

今年 6 月,我们让任何公共 GitHub 仓库都可以作为注册表。团队希望内部代码也能这样使用,例如不适合公开的设计系统、功能套件、代理规则和项目约定。

现在,你可以从私有仓库安装内容。只要你有权读取仓库,CLI 就可以从中安装。

pnpm dlx shadcn@latest add acme/internal-toolkit/auth-kit

零配置

如果你已经登录 GitHub CLI,就不需要额外配置。

gh auth login

如果仓库无法公开读取,CLI 会通过 gh 使用已保存的凭据读取仓库。令牌保留在 GitHub CLI 内,不会进入 shadcn 进程。

✔ Using gh credentials.
✔ Checking registry.
✔ Created 1 file:
  - lib/auth.ts

CI 支持

未安装 GitHub CLI 时,请设置 GH_TOKEN 或 GITHUB_TOKEN:

GH_TOKEN=github_pat_xxx npx shadcn@latest add acme/internal-toolkit/auth-kit

我们建议使用范围限定到该仓库、具有 Contents: Read-only 权限的细粒度个人访问令牌。

支持所有命令

私有仓库支持与公共 GitHub 注册表相同的命令。

pnpm dlx shadcn@latest list acme/internal-toolkit
pnpm dlx shadcn@latest search acme/internal-toolkit --query auth
pnpm dlx shadcn@latest view acme/internal-toolkit/auth-kit
pnpm dlx shadcn@latest registry validate acme/internal-toolkit

工作原理

  • 公共仓库仍与之前一样以匿名方式读取,不使用凭据,也不会调用 GitHub CLI。
  • CLI 会先尝试匿名访问,只有仓库无法公开读取时才会使用你的凭据。
  • 私有文件通过 GitHub Contents API 读取,并固定到已解析出的 commit SHA。
  • GH_TOKEN 中的令牌只会发送到 api.github.com。已保存的 GitHub CLI 凭据由 gh 读取,而不是由 CLI 读取。

完整指南请参阅私有仓库文档。