移管で実際に変わること
GitHubリポジトリの移管は、リポジトリを別のオーナーアカウントへ移す操作です。プロフィールのユーザー名を変更するのとは別の操作です。ユーザー名の変更はアカウントの公開アイデンティティと、そこから作られるURLを変えます。リポジトリの移管は、その1つのプロジェクトを誰が所有するかを変えます。目的がプロジェクトを他人に引き渡すことではなく、プロフィール名を整えることなら、以下の移管手順は適切な手段ではありません。
この区別は計画上重要です。元のオーナーアカウントを閉鎖してしまえば、招待の承諾や後続の承認、見落としたリンクの修正のためにログインできる人はいなくなります。旧アカウントに依存するものはすべて、その時点より前に片付けておく必要があり、後からでは間に合いません。
始める前に確認する前提条件
移管を進められるかどうかは、次の2つの条件で決まります。
リポジトリの移管には管理者アクセスと、リポジトリ名やフォークネットワークが競合しない互換性のある受け取り側アカウントが必要です。Source
実際には、依頼を出す前にオーナー側で3点、受け取り側で1点を確認するということです。
| 確認項目 | 誰が確認するか | 移管を妨げる理由 |
|---|---|---|
| オーナーアカウントがリポジトリへの管理者アクセスを持っている | オーナー | 管理者権限がないと移管を開始できない |
| 受け取り側アカウントに互換性がある | 受け取り側 | 互換性のない受け取り側アカウントは移管を止める |
| 受け取り側に同名のリポジトリがまだ存在しない | 受け取り側 | 名前の競合は移管を妨げる |
| フォークネットワークが競合しない | 受け取り側 | フォークネットワークの競合は移管を妨げる |
いずれかの行が満たされない場合は、依頼を送る前に解消してください。受け取り側でリポジトリ名を変更するのか、別の移管先アカウントを選ぶのかは受け取り側の判断なので、移管の途中で競合に気づくのではなく、事前に合意しておきましょう。
承諾ステップには短い期限がある
個人アカウント間の移管では、受け取り側は受け身ではいられません。行動する必要があります。
別の個人アカウントへの移管では、受け取り側が1日で失効するメール招待を承諾します。Source
1日での失効は、この作業で最大の運用上のリスクです。受け取り側が別のタイムゾーンにいたり、休暇中だったり、単にメールを見ていなかったりすると、招待は失効し、移管をやり直すことになります。受け取り側が連絡を取れる時間帯に送信するよう合意し、メールが未読のまま放置されないよう、受け取り側にメッセージが届くことを事前に伝えておきましょう。
オーナーと受け取り側の承諾チェックリストは次のとおりです。
- オーナー: 管理者アクセス、移管するリポジトリの正確な特定、受け取り側アカウントに名前やフォークネットワークの競合がないことを確認する。
- 受け取り側: 移管先アカウントを確認し、自分側から同じ競合がないか確かめる。
- 双方: 受け取り側が1日以内に応答できる送信時間帯に合意する。
- オーナー: 移管リクエストを送信する。
- 受け取り側: メール招待を速やかに承諾し、報告する。
- オーナー: 旧アカウントに何かをする前に、リポジトリが受け取り側アカウントの下に表示されることを確認する。
ステップ6が確認できるまで、オーナーアカウントを閉鎖しないでください。失敗した移管や失効した移管を再送できるのは、旧アカウントだけです。
その後、公開リンクはどうなるか
移管が人を驚かせるのはリンクの挙動です。2種類のリンクが異なる動きをするからです。
移管後はリポジトリのリンクがリダイレクトされますが、関連するGitHub Pagesのウェブサイトはリダイレクトされません。旧リポジトリの場所を再利用すると、リポジトリのリダイレクトが失われます。Source
これにより、移管後のリンク監査は明確に2つに分かれます。
| リンクの種類 | 移管後 | 必要な対応 |
|---|---|---|
| 旧リポジトリの場所を指すリポジトリリンク | 新しいオーナーへリダイレクトされる | 通常は何もしなくてよい。サンプルを検証する |
| リポジトリから構築されたGitHub Pagesサイト | リダイレクトされない | Pagesサイトへの公開リンクをすべて更新する |
| 旧リポジトリの場所が他人に再利用された場合 | リダイレクトが失われる | 旧リポジトリの場所を解放しない。リンクを最新に保つ |
3行目は最も見落とされやすい項目です。旧リポジトリのパスが後で再利用されると、旧リンクを静かにカバーしていたリダイレクトが消えます。リダイレクトは移行期間中の便宜的なものと捉え、恒久的な保証とは考えず、当てにするのではなく自分が管理するリンクを更新してください。
移管後の公開リンクチェックリスト
受け取り側が所有権を確認してから、オーナーアカウントを閉鎖する前に、これを実行してください。
- ドキュメント、README、プロジェクトを参照しているサイトから、リポジトリリンクのサンプルを開き、新しいオーナーに解決されることを確認する。
- リダイレクトされないため、リポジトリに関連するすべてのGitHub Pagesサイトを特定し、それらへの公開リンクを更新する。
- リダイレクトが失われる形で再利用されないよう、旧リポジトリの場所をどうするか決める。
- 外部の記事や共有ブックマークなど、自分が管理していない場所からのリンクを確認し、更新できるものとできないものを記録する。
- 上記がすべて終わるまで、オーナーアカウントを有効なままにしておく。
所有権の移行とユーザー名の変更
リポジトリの移管とプロフィールのユーザー名変更は、リスクの異なる別々の作業です。移管はプロジェクトを誰が所有するかに関わり、ユーザー名の変更はアカウント自身の公開アイデンティティに関わります。リポジトリを引き渡すのではなく、プロフィールの見え方を整えたいだけなら、まずユーザー名のガイドから始めてください。壊れたプロフィールリンクを残さずにGitHubユーザー名を変更する。
両方を行う場合は、順序を意識して進めてください。まずリポジトリの所有権を片付け、新しいオーナーが独立して行動できることを確認し、それから初めて旧アカウントを変更または閉鎖します。逆の順序で行うと、移管がすでに手放したアカウントに依存したままになります。
ユーザー名検索が向く場面と向かない場面
アカウントを閉鎖する前に、旧ユーザー名の公開痕跡がほかのどこに残っているかを知りたいと考える人は少なくありません。ユーザー名検索は、ほかのプラットフォーム上の公開プロフィールの一致を浮かび上がらせることができ、更新が必要かもしれないリンクの候補リストとして役立ちます。ただしアカウントの一覧ではなく、一致は同じ人物が両方のアカウントを所有している証拠でもありません。結果は手作業で確認する場所として扱い、リンクが有効であることやアカウントが自分のものであることの確認とは考えないでください。
TraceSeekは3,000+のプラットフォームを対象とし、初回スキャンを20–30 secondsで無料で返します。確認すべき公開プロフィールのチェックリスト作りには役立ちますが、所有権を検証するものではなく、上記の移管やリンクの確認に代わるものでもありません。リポジトリの移管そのものはGitHub上で行うものであり、検索ツールの中で行うものではありません。
現実的な作業順序
- リポジトリの移管が必要なのか、ユーザー名の変更が必要なのか、両方なのかを決める。
- 管理者アクセス、受け取り側の互換性、名前やフォークネットワークの競合がないことを確認する。
- 受け取り側が1日以内に承諾できるタイミングで移管を送信する。
- リポジトリが新しいオーナーの下にあることを確認する。
- リポジトリのリンクを監査し、それとは別にGitHub Pagesのリンクも監査する。
- 旧リポジトリの場所が再利用されないよう保護する。
- それから初めてオーナーアカウントを閉鎖する。