Android Studio (mac) で github 連携する - github access token の発行と使い方-

Android Studio でgithub設定するとき地味に困ったのでメモ。

1. 個人アクセストークンとは
2. git（ローカルリポジトリ）の作成
3. github個人アクセストークンの発行
4. github連携
5. 連携設定の解除


![スクリーンショット 2021-02-01 15.49.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332094/adcd3489-3e11-8357-bf80-690c64fb85e4.png)
macbookpro intel 2020

下記の説明は一度私の環境で設定をした後、設定を破棄してしなおした時のスクリーンショットを使っています。
実は初回の設定と若干流れが違った（気がするので）同じ環境で初めてやる方でも少し違う流れになるかもしれません。

##1. 個人アクセストークンとは

アプリケーション専用のアクセストークンを取得しないとAndroid Studioとの連携ができない。
（おそらく、GitHubのアカウント設定で二要素認証を使っていることと関係あり？）
**要は、この端末のAndroid Studio専用のパスワードを作ります。**
他の端末のアプリ連携に要求された場合、同じような操作でできるはずです。
>セキュリティ上の理由から、 GitHub は過去 1 年間使用されていない個人アクセストークンを自動的に削除します。

もしAndroid Studio を1年使ってないとプッシュできなくなるはずなのでその時は設定し直しましょう。



##2. git（ローカルリポジトリ）の作成

VCS > VCS Operations Popup... > Create Git Repository...
![スクリーンショット 2021-02-01 13.01.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332094/6c11794c-877f-c9f8-2bfa-040e827caad3.png)
![スクリーンショット 2021-02-01 13.01.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332094/936ed0f7-5c0c-ff1b-82c3-4481ace4c8cb.png)
現在のプロジェクトディレクトリを指定してあげればOK
ターミナルでコマンド操作でも問題なし

##3. github個人アクセストークンの発行

VCS > Import into Version Control > Share Project on GitHub
![スクリーンショット 2021-02-01 13.03.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332094/c56d0590-00bb-ccb7-b34f-ec91ba0c3093.png)
![スクリーンショット 2021-02-01 13.11.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332094/3bb19803-9df2-0375-b6a7-744efcff666c.png)
ここで通常のGithubログインアカウントとそのパスワードを打ってもログインができない。
Passwordの下に うんたらかんたら・・・only used to generate a GitHub token とある。
**右上の Use Token をクリック**
![スクリーンショット 2021-02-01 13.11.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332094/6e06f1d2-8bbf-ceee-1679-31ef5475c365.png)
ここに、アクセストークンを入力する必要がある。


アクセストークンの発行はGitHubアカウントにブラウザアクセスして作ります。
操作の流れは公式ドキュメントがわかりやすいので基本的な操作はこの通りです。
→ [GitHub Docs](https://docs.github.com/ja/github/authenticating-to-github/creating-a-personal-access-token)
ここで、Android Studio 用の個人アクセストークンの設定は以下の３つ
先程のAndroid Studio側のトークン入力ポップアップにもこれを設定してね、と出てます。

* repo
* read:org
* gist

この設定の間違っているトークンを作成した場合、以下のようにスコープが間違ってる、と怒られます。
![スクリーンショット 2021-02-01 13.15.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332094/5f27306a-1373-9fb5-1594-1a53e967cc78.png)
なおここに映っているアクセストークンは設定ミスで使えないためGitHub上で削除してあります。
一度限りの専用パスワードなのでこれを誰かが打ち込んだとしてももう使えないので晒してても特に問題ありません。

##4. github連携
先程のポップアップに作成したアクセストークンを入力して Log In

リモートリポジトリの設定をします。
この流れで行けばリモートリポジトリを新たに作成することになります。
Android Studioのデフォルトプロジェクト名の場合、名前にスペースが含まれていて作成できません。
そもそもプロジェクト名にスペースを入れない方が何かといいですね。（デフォルトがよくない）
![スクリーンショット 2021-02-01 13.21.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332094/921c686b-5c9d-aca4-1880-dfb5167ef545.png)
以下のようなメッセージが右下のあたりにポップしてれば成功です。
ポップアップ内のリンクをクリックすればブラウザで自分のアカウントのリモートリポジトリが表示されます。
![スクリーンショット 2021-02-01 13.22.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332094/b4368340-5e3b-beb4-dd27-8d16140c8832.png)



##5. 連携設定の解除

command + , で設定を開き > Version Control > GitHub
![スクリーンショット 2021-02-01 13.16.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332094/6a7e5bf9-9675-3f8d-1ff3-3bb12fd2ba61.png)
連携設定を削除したいリポジトリを選んで左下の - をクリック
Android Studio側からのリモートリポジトリのアクセス情報を削除できます。
GitHubにブラウザアクセスしてトークンも削除しておきます。