SourceTreeでGitHubのPersonal access tokensを利用する方法
背景
2021年8月13日に、GitHubでパスワード認証が廃止されました。
そのため、Personal access tokensを利用しないとSourceTreeから push/pull ができなくなります。
※pushした場合下記のようなエラーが表示されます。
git --no-optional-locks -c color.branch=false -c color.diff=false -c color.status=false -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags origin refs/heads/main:refs/heads/main
Pushing to https://github.com/****/****.git
User cancelled password prompt.remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/****/****.git/'
Completed with errors, see above
今回はSourceTreeでGitHubのPersonal access tokensを利用してログインする方法を記載します。
前提
このドキュメントは下記の前提で進みます。
- GitHubアカウント作成済
- SourceTreeインストール済
- Mac環境
GitHubでPersonal access tokensを取得する
Githubより、[自分のアイコン] -> [Settings]をクリックします。
左サイドバーより[Developer settings]をクリックします。
左サイドバーより[Personal access tokens]をクリックします。
[Generate new token]をクリックします。
パスワード聞かれるので、入力して[Confirm password]をクリックします。
personal access tokenの設定画面が表示されます。
必要項目の入力と、チェックを入れます。
Noteには分かりやすい文字を入力します。
チェックボックスは、ご自分の環境に合わせて設定します。
今回は下記にチェック入れています。
- repo
- workflow
- admin:repo_hook
- user
- delete_repo
設定完了したら[Generate token]をクリックします。
するとtokenが発行されるので、こちらをコピーします。
※tokenは再表示されませんので、必ずコピーをお願いします。
以上でGitHubでの操作完了です。
SourceTreeにて、tokenでログインする
次にSourceTreeでの作業に移ります。
SourceTreeより、右上の[3点ボタン] -> [アカウント...]をクリックします。
[アカウント]タブをクリックしアカウント画面に遷移し、[追加]をクリックします。
設定画面が表示されるので、下記入力します。
項目 | 設定・入力 |
---|---|
ホスト | GitHub |
認証タイプ | OAuth |
プロトコル | HTTPS |
また、「ユーザ名」の「アカウントを接続」をクリックします。
ブラウザが開き、「SourceTreeを開きますか?」と聞かれるので、「Sourcetreeを開く」をクリックします。
すると、ユーザ名が表示されます。
間違いなければ[保存]をクリックします。
すると、アカウントが作成されました。
GitHubにpush/pullできるか確認
それではSourceTreeより、GitHubリポジトリに push/pull できるようにします。
cloneしたリポジトリを選択します。
通常通りファイル修正し、commit -> pushを行います。
[OK]をクリックします。
「Password Required」と表示されるので、先ほどコピーしたtokenを記入し「OK」をクリックします。
すると無事pushできました。
以上です。
Discussion