Windows10でGitHubを始める～⑥-2.Git操作時のGitHub認証HTTPS（Personal access token）

個人学習メモ。

# 1.Personal Access Tokenとは

 - 個人アクセストークン、PATともいう。（以後「PAT」）
 - GitHub APIまたはコマンドラインを使用するとき、GitHubへの認証でパスワードの代わりに使用できる。
 - HTTPS経由のGit操作にのみ使用する。
 - SAML SSOを使用する Organization が所有するリソースにアクセスする場合はPATで認証する必要がある。

# 2.PAT生成
[Settings]-[Developer settings]-[Personal access tokens]を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/1e7c4ae0-624d-45fb-e1ad-38d693d34c75.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/79826d16-b524-d779-f909-7e5f649870db.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/1a07feb4-dfa0-f285-bbb3-a2044c8ff64c.png)
パスワードが求められるので、GitHubアカウントパスワードを入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/9176e8e0-edea-3756-cd92-a4ad94e58f69.png)
PAT新規作成画面になる。PATにわかりやすい名前を付け、有効期限を設定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/bf298089-c0f7-b477-4719-7402365f7e01.png)
このトークンを使用するスコープまたは権限を選択する。
トークンを使用してコマンドラインからリポジトリにアクセスするには、`repo`を選択しておく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/8d1a1f28-f269-ca50-f074-d456eb45a268.png)
PATが生成できた。
画面遷移すると二度と表示されなくなってしまうので、コピーして保存しておく。
※漏洩すると不正アクセスされてしまうので、取扱注意！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/9251a10b-16af-1b35-e196-fd611e8fedc6.png)

トークンを取得したら、HTTPSを介してGit操作を実行するとき、パスワードの代わりにトークンを入力することで認証できる。
 **環境によってはGUIのポップアップが出ることもあるので、HTTPS認証を選択しPersonal Access Tokenを入力すればよい。** 


```
$ git clone https://github.com/emi-ki/qiita-test.git
Username: your_username
Password: your_token ## ⇐⇐⇐ここにPAT
```
※clone用のURLは[Code]-[HTTTPS]でコピーする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/559fdb76-415b-2c75-7223-2f82d3e882b2.png)

PAT生成画面から遷移するとPATは表示されなくなる。
再度[Personal Access Tokens]画面に行くと、PATの有効期限がPAT作成時に設定した期限と一致していることが確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/32020ac7-a616-fa72-7218-32c9ef2f6fde.png)

# 3.PATを忘れた場合の再生成
[Personal access tokens]画面で[Generate new token]をclickする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/9960bf62-d327-a474-5ff4-98483af9b547.png)
PAT生成画面になる。手順2と同様の手順で作成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/5e53882d-53a3-7a5e-7069-28715c8eb521.png)
新しいPATが生成されている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/92d7a3c0-7d5a-213b-dc12-234fc7611cd8.png)
画面遷移すると以下のように、最初に生成したPATの上に新しく生成したPATが追加されていることがわかる。
ちなみに新しく生成したPATは有効期限をカスタムで翌日にしたので、有効期限間近で警告が出ている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/73e1b937-dde3-f2bf-a6c8-60502ec42994.png)
この警告部分をクリックすると、有効期限を延長することができる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/a64b2437-38a9-a12a-2210-be8986777274.png)
>Submitting this form will generate a new token. Be aware that any scripts or applications using this token will need to be updated.

とあるように、有効期限を延長すると新しいトークンが生成されるため、以前のトークンを使用するスクリプトまたはアプリケーションはすべて更新する必要があることに注意が必要。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/1b6acf3a-6b99-76e1-ecb8-8067581b5f90.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/ea03d61f-9b70-4f8a-95f3-0af1d4f23c4f.png)
有効期限を延長することができた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/5af2683c-d853-a884-479c-877ea0e87fe0.png)

# 3.補足

 - セキュリティ上の予防措置として、1年間使用されていない個人用アクセストークンはGitHub側で自動削除される。
 - スコープが割り当てられていないトークンは、公開情報にのみアクセスできる。
 - GitHub Actionを更新する場合は権限設定で[workflows]の選択が必要。

# 参照
[Windows10でGitHubを始める～⓪Gitの概念とインストールソフトの種類](https://qiita.com/emiki/items/5c8e52cf6b8506015462)
[Windows10でGitHubを始める～①Gitインストール](https://qiita.com/emiki/items/c0aa0b4da4b63921b153)
[Windows10でGitHubを始める～①'おまけGitホームディレクトリ変更](https://qiita.com/emiki/items/d3f7c054b70171218f64)
[Windows10でGitHubを始める～②GitHubアカウント作成](https://qiita.com/emiki/items/dadf77e9ae1e2b192323)
[Windows10でGitHubを始める～③GitHubでのメールアドレス設定とGitクライアントでのユーザ名・メールアドレス設定](https://qiita.com/emiki/items/4103150a5d7a7cfbff24)
[Windows10でGitHubを始める～③'おまけユーザ名・メールアドレス設定について詳細](https://qiita.com/emiki/items/24212696b54fd16e8af8)
[Windows10でGitHubを始める～④リモートリポジトリの作成（GitHub）](https://qiita.com/emiki/items/5080d948af4a2d0febf5)
[Windows10でGitHubを始める～⑤Githubにプッシュする](https://qiita.com/emiki/items/a2871ab626396e95d9ec)
[Windows10でGitHubを始める～⑥-0.Git～GitHub間の認証について](https://qiita.com/emiki/items/eeaf77d51aadef98aea9)
[Windows10でGitHubを始める～⑥-1.Git操作時のGitHub認証HTTPS（Git Credential Manager）](https://qiita.com/emiki/items/3f2ebda7280374fb3bb7)
[Windows10でGitHubを始める～⑥-2.Git操作時のGitHub認証HTTPS（Personal access token）](https://qiita.com/emiki/items/498b05ede19eee3ad916)
[Windows10でGitHubを始める～⑥-3.Git操作時のGitHub認証SSH編](https://qiita.com/emiki/items/1f1fc0bf0c2c4347148d)
[Windows10でGitHubを始める～⑦GitHubへのPullRequest](https://qiita.com/emiki/items/8619441dca761869177f)

https://wa3.i-3-i.info/word1104.html

https://qiita.com/kz800/items/497ec70bff3e555dacd0

https://style.potepan.com/articles/34189.html

https://qiita.com/shiro01/items/e886aa1e4beb404f9038

https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token