GitLab 用户名更改实际影响什么
把 GitLab 用户名更改视为一次有公开后果的命名空间迁移,而不是个人资料编辑。个人资料中的用户名与项目 URL 中的路径是关联的,因此重命名可能影响任何指向旧路径的内容。
更改 GitLab 用户名也会改变账号的个人命名空间。来源
这一事实解释了为什么检查应在重命名之前进行,而不是之后。如果任何项目、页面、包或外部引用依赖旧命名空间路径,你需要提前知道,并决定如何处理。
两个有文档记录的阻碍
GitLab 对用户名更改规定了具体前提条件。它范围很窄,但它是此处已批准来源中确立的唯一阻碍集合,因此把它作为第一道关卡。
用户名更改的前提条件是:命名空间内没有带 Container Registry 标签的项目,也没有托管 GitLab Pages 的项目。来源
在实践中,这意味着你应清点个人命名空间中的项目,并识别任何使用 Container Registry 标签或托管 GitLab Pages 的项目。这些项目必须在重命名进行前解决或迁移。不要假设没有这些功能的项目就自动安全;来源将这些确立为前提条件,而非所有可能下游影响的完整列表。
提交前审查重定向行为
已批准来源还指出,GitLab 指引用户在更改用户名前查看仓库重定向行为,并且新用户名路径位于个人资料账户设置中,带有 Update username 操作。
GitLab 指引用户在更改用户名前查看仓库重定向行为;个人资料账户设置提供新用户名路径和 Update username。来源
重定向行为是重命名看似无害却仍可能破坏东西的地方。在更改任何内容之前,阅读适用于你账号的重定向指南,并记录它涵盖和不涵盖的内容。如果你无法验证重定向对你的项目如何运作,停下来先解决。在你检查旧路径依赖什么之前,不应将重命名视为无害。
依赖检查表
使用此表记录你的发现。在做出更改前填写,并保留作为你决定的记录。
| 检查项 | 记录内容 | 停止条件 |
|---|---|---|
| 个人命名空间项目 | 命名空间中的每个项目,以及它是否使用 Container Registry 标签或 GitLab Pages | 任何项目有 Container Registry 标签或托管 GitLab Pages |
| 重定向行为 | 重定向指南对旧路径的说明以及涵盖哪些项目类型 | 你无法确认重定向如何适用于你的项目 |
| 公开引用 | 显示旧命名空间路径的页面、文档、README 或个人资料 | 引用无法更新或重定向 |
| 所有权 | 你控制账号和正在重命名的项目 | 任何受影响项目的所有权不明确 |
| 下游用户 | 任何克隆、链接或依赖旧路径的人 | 你无法通知他们或提供可用的替代路径 |
此表是起点,不是保证。已批准来源未确立所有可能的依赖,因此为你的设置特有的任何内容添加行。
分步检查
- 列出个人命名空间中的项目。对每个项目,记录它是否使用 Container Registry 标签或托管 GitLab Pages。
- 如果任何项目有任一依赖,决定在重命名前移除、迁移或以其他方式解决。在有文档记录的阻碍存在时不要继续。
- 阅读仓库重定向指南,并写下它对你的项目涵盖什么。如果答案不明确,停止。
- 搜索你的公开材料中的旧命名空间路径:项目页面、README、文档和链接到你工作的个人资料。
- 确认你控制账号和每个受影响项目。如果所有权不明确,停止。
- 只有在检查表完成且无停止条件适用后,才进入个人资料账户设置,输入新用户名并使用 Update username。
- 更改后,重新检查你记录的引用,确认每个仍能解析或已更新。
需要计划的失败路径
- 阻碍项目仍存在。 如果带 Container Registry 标签或 GitLab Pages 的项目仍在命名空间中,根据有文档记录的前提条件,重命名无法进行。先解决它,而不是试图绕过。
- 重定向覆盖不明确。 如果你无法确认重定向如何运作,将重命名视为未验证并暂停。基于假设继续正是此检查要防止的失败模式。
- 遗漏公开引用。 旧命名空间路径可能持续存在于文档、README 或个人资料中。更改后遍历你记录的列表,修复未跟随的内容。
- 所有权不确定。 如果你不确定控制某个项目或账号,停止。在没有明确所有权的情况下执行重命名会制造更难解决的问题。
此检查不告诉你什么
已批准来源未描述可能引用你命名空间的每个下游系统,也未承诺重命名无害。它也未确立个人资料账户设置路径和 Update username 操作之外的菜单细节。在来源沉默之处,在检查表中记录缺口,而不是用假设填充。
相关的下一项任务
重命名完成且项目引用稳定后,一个单独的问题是用户名现在在其他地方显示什么。如果你想查看某个用户名在公开平台上的出现位置,关于如何按用户名查找社交媒体账号的指南涵盖了该任务。保持两项工作分开:GitLab 检查关乎命名空间依赖,而用户名查找关乎公开个人资料,公开匹配是线索而非所有权证明。