注册登录的常见问题:账号、认证、令牌
第 2 篇讲的是顺利路径。这篇收一路上真正会卡人的地方。
一、注册前先分清「账号」和「身份」
CNB 上你其实有两个身份在同时起作用:
- 平台账号:登录 cnb.cool 网页用,决定你能进哪个组织、看哪些仓库
- Git 身份:
git push时提交的 author,以及凭据认证
两者可以不是同一个东西。网页上你是「张三」,命令行提交可以是 zhangsan <zhangsan@company.com>。
CI 页面里显示的提交者,取的是 Git 身份。
:::tip 提交者信息对不上,先查这里
流水线显示的作者不是你,别急着怀疑平台——大概率是本地 git config user.email 没配。
git config --global user.name "你的名字"
git config --global user.email "you@example.com"
:::
二、Git 认证:三条路,选一条
CNB 的 Git 地址格式与 GitHub 类似,认证方式有三种,按场景选:
| 方式 | 适合 | 注意事项 |
|---|---|---|
| 网页授权(OAuth) | 网页操作、云原生开发环境内 | 无需本地配置 |
| 访问令牌 + HTTPS | 本地克隆、脚本、第三方工具 | 用户名固定填 cnb,密码填令牌 |
| SSH 密钥 | 长期本地开发 | 需先把公钥加到个人设置 |
最常见的问题是用户名填错。用访问令牌做 HTTPS 认证时:
git clone https://cnb.cool/yamingnetwork/emchaye.git
# Username: cnb
# Password: <你的访问令牌>
用户名不是你的账号名,就是 cnb 这三个字母。填成账号名会一直提示认证失败。
三、访问令牌怎么配权限
入口:个人设置 → 访问令牌 → 添加访问令牌。
创建时有四项要填:名称、到期时间、使用范围、授权范围。最后一项最容易配错。
默认权限是这样设计的:
- 公开的组织 / 仓库 / 制品库 / 任务集:默认只读
- 私有仓库 / 制品库:默认无权限
- 账号相关操作:默认无权限
所以"令牌生成了但拉不动私有仓库"几乎必然——你得手动勾上对应仓库范围的读权限。
:::tip 最小权限原则 令牌就是一把钥匙。给脚本用的令牌,只勾它需要的那一两个范围。 范围配大了,脚本一旦泄露,损失是全量的。 :::
四、部署令牌和访问令牌,别搞混
| 访问令牌 | 部署令牌 | |
|---|---|---|
| 身份 | 个人 | 仓库级 |
| 权限 | 可读写 | 只读 |
| 适合 | 开发、脚本、OpenAPI 调用 | CI 拉代码、部署脚本、只读同步 |
CI/CD 与自动化脚本里拉代码,优先用部署令牌。它不能写,泄露了也改不了东西。
五、几个高频问题快答
Q:登录后找不到组织?
组织成员是邀请制。找组织管理员在 组织设置 → 成员 里邀请你。私有组织的仓库对非成员不可见,连搜索都搜不到。
Q:改了组织名,本地仓库推不上去了? 组织名就是路径。改完要更新本地 remote:
git remote set-url origin https://cnb.cool/新组织名/仓库名.git
CI 配置里硬编码的旧路径也要一起改。
Q:Fork 别人的仓库,为什么流水线不跑?
Fork 仓库默认不自动触发任何流水线(Git 事件、定时任务、Issue 事件都不跑),这是安全设计。需要源仓库管理员在 设置 → 云原生构建 勾选「Fork 的仓库默认允许自动触发」。
Q:提交签名验证报错?
CNB 支持 GPG 提交签名验证。网页端提交由平台默认签名 web-flow.gpg;本地提交需自行生成 GPG 密钥并把公钥加到个人设置。
六、账号配好了,下一步读什么
认证是地基。地基打完,接下来是怎么在仓库里干活——这属于平台操作,但真正决定体验的是 git 和 Issue/PR 的配合。
现在你已经能登进来、能推代码、能被 CI 认出来了。下一篇换个角度:不用网页,直接在命令行里把平台当工具箱用。