github Organization移動後に困ったこと

移動する機会があったのでやりました

やり方自体はいろんなところに書いてあるしぽちぽちするだけなので簡単 しかも移行した後にアクセスするとgithub様がリダイレクトしてくれるので問題が起きにくい (Organization消すと多分死ぬ

で、移動した後に起こったいろいろなことを書く

前提: そのプロジェクトは相当前から前Organizationにあり、設定等をした前任者はいない状態 circle ciはversion 1

1、Organization移動すると読み込み権限だけになっていた プロジェクト単位でread/writeを設定できるが移動した後のデフォルトはreadだったっぽい pushできなーいとい社内アラートが起こった

2、circle ciのプロジェクトがないのでこけてる circle ciでプロジェクトを作る circle ciがプロジェクトにアクセスする為に鍵を作る

左タブprojects -> add project -> 対象のプロジェクトの右側のsetup project -> start building -> Checkout usingでこける -> 左タブprojects -> 対象の設定(歯車マーク) -> checkout ssh keys -> add deploy key -> 新しく表示されているリンクになっているkeyをクリックするとgithubのDeploy keysに追加される -> さっきこけたものをrebuildすると通る

3、circle ciでsubmodule使ってる部分がこける これに時間をとられた 複数のプロジェクトを移動したが一部でsubmoduleを使っているところがあった ciが流れる際にsubmoduleで移動したプロジェクトを持ってくるのだがエラーで動かない

[code lang=text] ERROR: Repository not found. fatal: Could not read from remote repository. [/code]

とかciで言われる ローカルだと問題なくテストが通る

この問題はcircle ciがsubmoduleにアクセスできない為に起こっている それはプライベートリポジトリからsubmoduleでとりにいこうとしているのでエラーが起こっている

そこでキーペアを作ってcircle ciのSSH Permissionsへ鍵を追加して githubのプロジェクトのdeploy keysにも鍵を追加してみたがうまくいかない

ここで大事だったのは SSH Permissions へ鍵を追加する時のhostnameはgithub.comにすることだった

しかしそれでも通らない 現象は下記リンクと同様

https://discuss.circleci.com/t/using-github-auth-token-within-build-to-check-out-another-private-repo/560

結局できたのはどちらにもアクセスできるユーザの秘密鍵をcircle ciのSSH Permissionsへ鍵を登録することだった そういえば前動いていたOrganizationではdeployユーザがいたので多分前任者もそのユーザの鍵を使っていたのだろう

調べていたらcircle ciのversionを2系にすればどうにかなるかもという話を聞いた 試していない