AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

リポジトリの移転 (transfer)

基本的に公式のドキュメント通りで大丈夫。

今回は organization 所属のリポジトリを、別の organization に移転した。

docs.github.com

危険なゾーンセクション

最初、手順のうち以下の記述が「?」みたいになっていたのだけど、全部日本語翻訳されているせいですね。 DangerZone ……。

ページの下部にある [危険なゾーン] セクションで、 [転送] をクリックします。

危険ゾーン

チームの選択

移転先の organization でチームを作成している場合、作業時にチームを選択する画面が表示されます。 前述の公式ドキュメントには書いてないですね……。

なにか選ばざるを得ない圧を感じる

初回表示される際はなにかチームを選ぶのが必須に見えるんですが、「よくみるとチェックボックスだし、 collaborator と member は移行されるよな」と思って選択しないで Transfer ボタンを押すと次のようになりました。

危険ゾーン

Do not give any teams access to {移転後の organization/リポジトリ名} という感じで、新しい選択肢が増えました。 最初から表示しといてくれ。

チームにあえて権限付与する必要はないので、こちら選択しておけば大丈夫です。

移転後の注意

移転後に確認していて気付いたのですが、 project が移行されませんでした。

dev.classmethod.jp

あとから調べた所、大正義クラスメソッドくんでの記述では移転されているのですがウーン?と思っていた所、以下の記述を見つけました。

product.st.inc

リポジトリに紐づくタイプのプロジェクトボードでは、別Organizationにリポジトリを移動させたとき、プロジェクトボードに紐づくIssueもリポジトリと一緒に移動するので紐付けに関する問題は特に発生しません。一方で、Organizationに紐づくタイプのプロジェクトボードの場合、プロジェクトボードは移動前のOrganizationに残されるので、プロジェクトボードとIssueの結びつきが切れてしまいます。

はえー、 project にも種類があるんすか?

と思ったけど、リポジトリの Project ページから Link a project, New project どちらを選択しても organization 配下に作成されるからなんか違うのか……? とここまで考えて気付いた。

どっちを選択しても organization 配下になり、リポジトリ所属の雰囲気ではない

このリポジトリ Private だった

このリポジトリ Private だった。

Make a copy

結局、取り残された project を Make a copy 利用して organization またいで copy したあとに、移転したリポジトリから Link a project で関連付けすることで解決できました。

organization をまたいでコピーできてよかった

issue が歯抜けになってる……? かもしれないけど、ワイがハンドリングしているわけでもないのでよくわからんのだった。

collaborators and teams

あとは移転元移転先でユーザ揃えてれば権限も大丈夫なんだけど、たとえば以下みたいな時に Mixed role と警告される。

移転元 (Org A) 移転先 (Org B)
Org B からコラボレータとして Write 権限付与して参加 生え抜きのユーザ

自分の所属している organization では、参加したリポジトリ内で付与される権限が Admin が基本なので、移転元の Write がついたままだと Role が混在するよ、という話らしい。

Settings の Collaborators and teams から、 Mixed role になってる人 (基本的に移転先の organization に所属している人だけのはず) の role を Admin にしてやれば解決する。