Что на самом деле затрагивает смена имени пользователя GitLab
Относитесь к смене имени пользователя GitLab как к миграции пространства имён с публичными последствиями, а не как к правке профиля. Имя в профиле и путь в URL ваших проектов связаны, поэтому переименование может затронуть всё, что указывает на старый путь.
Смена имени пользователя GitLab также меняет личное пространство имён аккаунта. Источник
Этот единственный факт объясняет, почему проверку нужно проводить до переименования, а не после. Если какой-либо проект, страница, пакет или внешняя ссылка зависит от старого пути пространства имён, вы должны знать об этом заранее и решить, как это будет обработано.
Два задокументированных блокирующих условия
GitLab указывает конкретное предварительное условие для смены имени пользователя. Оно узкое, но это единственный набор блокирующих условий, установленный в утверждённом источнике здесь, поэтому используйте его как первый фильтр.
Предварительное условие для смены имени пользователя — в пространстве имён нет проектов с тегами Container Registry и нет проектов, размещающих GitLab Pages. Источник
На практике это означает, что нужно провести инвентаризацию проектов в личном пространстве имён и выявить те, что используют теги Container Registry или размещают GitLab Pages. Именно эти проекты должны быть разрешены или перемещены до того, как переименование сможет продолжиться. Не считайте, что проект без этих функций автоматически безопасен; источник устанавливает эти условия как предварительные, а не как полный список всех возможных последствий для зависимых систем.
Изучите поведение редиректов до того, как commit
Утверждённый источник также говорит, что 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 касается зависимостей пространства имён, а поиск по имени пользователя — публичных профилей, и публичное совпадение — это зацепка, а не доказательство владения.