入门
License 与代码交付
买断后如何获取私有仓库访问权、分配与管理 GitHub 席位。
FlareStarter Pro 以私有 GitHub 仓库 collaborator 的形式交付:买断后你把席位分给
具体的 GitHub 账号,对方接受邀请即可 git clone / git pull,长期获取更新。
本页讲席位怎么分、各状态什么含义、以及边界情况(邀请过期、账号已在仓库里)怎么处理。
交付流程
- 在 /pricing 完成买断(Solo 或 Team)。
- 支付到账后会收到一封邮件,指向 /app/license —— 登录后随时可回到这页。
- 在 License 页输入要授权的 GitHub username → 系统拉取该账号的公开资料 (头像、显示名、规范大小写的 login,并附 GitHub 主页链接)供你确认预览。
- 确认发送后,对方收到 GitHub 的仓库邀请邮件,接受即获得 read 权限。
所有席位(包括你自己的)都走同一条手动分配流程——不要求你的 FlareStarter 账号绑定 GitHub 登录,买家邮箱和 GitHub 邮箱不一致也完全没问题。填谁,谁拿到访问权。
席位额度与状态
- **Solo:1 席;Team:4 席。**给谁用由你决定(通常包含你自己)。
- 待接受(pending):邀请已发出、对方还没点接受。此时可以撤销并把席位换给别人 ——填错用户名不会浪费席位。
- 已接受(accepted):对方已进入仓库,席位永久占用,不提供换绑 (与 LICENSE 第 3(b) 条一致)。确认弹窗会再提醒一次,发送前请核对预览。
几个自动化兜底,你不需要手动操心:
- 接受状态实时刷新:存在 pending 席位时,每次打开 License 页都会对一次 GitHub, 接受了立即显示"已接受",不用等定时任务。
- 邀请过期重发:GitHub 的仓库邀请 7 天过期,每日对账任务会自动重发,席位不丢。
- 已有访问权的账号:如果填的账号已经在仓库里(例如维护者),系统会直接拒绝并提示 "无需占用席位",不会发出邀请、也不会动它现有的权限。
把这套交付复用到你自己的产品
这个流程本身就是模板的一个功能切片(src/features/delivery/),如果你也想"卖私有仓库
访问权",配两个环境变量即可启用,不配则整个入口隐藏(优雅降级):
| 变量 | 说明 |
|---|---|
GITHUB_PRO_REPO | 要交付的仓库,owner/repo 格式 |
GITHUB_INVITE_TOKEN | 对该仓库有邀请 collaborator 权限的 PAT(fine-grained: Administration read/write,或 classic repo scope) |
实现上的几个不变量,改造时别破坏:席位上限在写库前校验;发邀请前先查"是否已是 collaborator"(GitHub 的邀请接口对已有成员会改写其权限,先查避免把 write 降成 read); 接受确认走"页面打开时实时对账 + 每日 cron 兜底"双通道(PAT 模式下 GitHub 不给邀请接受 的 webhook)。定时对账细节见 定时任务。
常见问题
- 填错了用户名怎么办? 邀请未被接受前,在 License 页撤销即可,席位退回。
- 对方没收到邀请邮件? 让对方直接访问仓库地址,GitHub 会在页面顶部展示待接受的邀请; 或检查其 GitHub 通知设置。超过 7 天过期会自动重发。