個人アカウントで作成したGitHubのOAuthアプリケーションをOrganizationに移行する方法

こんにちは、エンジニアの @akase244 です。

当社で開発・運営している「chirami(Webデザイナー向けのHTMLプレビューツール)」では、Twitter、GitHub、Facebookアカウントを利用しログインができます。 (chiramiの使い方についてはこちらをご覧ください)

chiramiをリリースした当初、大急ぎで色々な作業を進めた部分があり、GitHubのOAuthアプリケーションを私の個人アカウントに紐付けて作成していました。
つまり、自社プロダクトにも関わらずGitHubアカウントを使ってログインしようとすると認証画面で「Authorize akase244」と表示されていたわけです。

さすがにこれでは格好がつかないので、今回はGitHubのOAuthアプリケーションのownershipを個人アカウントからOrganizationに移行した方法を紹介します。

はじめに

開発をやってる際は、GitHubのOAuthアプリケーションにあまり詳しくなかったので、今回のような場合には個人アカウントと同様にchirami用のGitHubアカウントを別途作成し、そのアカウントでOAuthアプリケーションを作成する必要があると思っていました。

しかし、この方法ではOAuthアプリケーションのClient IDやClient Secretが変わってしまうため、既にログインしているユーザーがGitHubアカウントでログインしようとすると新たに認証が求められてしまい非常に都合が悪いです。

そこで、他のwebサービスはどのように運用しているのだろう?と考え、ふと「Organization」の設定画面を目を向けると「OAuth Apps」という項目があることに気づきました。
なぁーんだこれかと。

それでは本題です。ここからは実際の画面を見ながら、OAuthアプリケーションのownershipの移行作業を行っていきます。

移行手順

1. 個人アカウント設定画面へ移動

個人アカウントの設定画面を開く

f:id:akase244:20170802162258p:plain

2. OAuth applications画面へ移動

左側のメニューの Developer settings から OAuth applications を選択する

f:id:akase244:20170802162449p:plain

3. OAuthアプリケーションを選択

移行対象のOAuthアプリケーションを選択する

f:id:akase244:20170802162923p:plain

4. Transfer ownership画面へ移動

「Transfer ownership」をクリックする

f:id:akase244:20170802163040p:plain

5. ownership移行のための必要な項目を入力

「Type the name of the application to confirm」にOAuthアプリケーション名、「New owner’s GitHub username or organization name」に移行先のOrganization名を入力し、「Transer this application」をクリックする

f:id:akase244:20170802163209p:plain

6. ownership移行の確定

「Transer request」画面で「Complete transfer」をクリックする

f:id:akase244:20170802163651p:plain

7. OrganizationのOAuth applications画面に対象のアプリケーションが表示されていることを確認

ownershipが移行先のOrganizationに移りました

f:id:akase244:20170802163857p:plain

8. ログイン画面でownershipが移行されていることを確認

GitHubアカウントで新規ログインしようとすると「chirami by innovator-japan」、「Authorize innovator-japan」と表示されownershipが移行できていることが確認できます

f:id:akase244:20170802164052p:plain

まとめ

いかがだったでしょうか。ほんの数ステップでGitHubのOAuthアプリケーションのownershipの移行ができることが分かったのではないでしょうか。

いないと思いますが。。。もし私と同じように自社プロダクトにも関わらず恥ずかしいログイン画面が表示されている方がいたら、参考にしてみてください。