GitHubでPullが失敗した時にFine-grained Personal Access Tokensへ移行した話

久しぶりにリポジトリを作成し、GitHubからそのリポジトリをクローンしようとしたときに、いままではできていたパスワードでのクローンができなくなっていました。特に、過去には何の問題もなくクローンできていたため、何が悪いのか調査をすることにしました。

GitHubでのPull失敗の原因

リポジトリのクローン失敗

Gitでの操作で重要な「git clone」を使用してリポジトリをクローンしようとしたところ、次のようなエラーメッセージが表示されました。

このエラーメッセージは、認証に失敗したことを示していました。初めはシンプルな入力エラーかと思ったのですが、何度試しても結果は同じでした。パスワードで認証が通らなくなった理由についてインターネットで情報収集を始めました。

Tokenの必要性について

調査の結果

調べてみたところ、GitHubはセキュリティの強化を目的としてPersonal Access Tokens(PAT)を導入したことが分かりました。特にFine-grained Personal Access Tokensは、より細かいアクセス制御が可能になるため、多くの開発者から支持されていることがわかりました。

なぜFine-grained Personal Access Tokensを使用するのか

このトークンは、特定のリポジトリへのアクセス権限を持つため、安全性が高く、必要な権限だけを与えることができるため、リポジトリの管理が容易になります。そして、特定の用途に対してのみトークンを発行すれば、万が一トークンが漏洩した場合でも、被害を最小限に抑えることができます。

Fine-grained Personal Access Tokensの設定手順

GitHubへのログイン

まず、GitHubにログインします。自分のアカウントで正しくログインできることを確認してください。

Developer Settingsを開く

右上のプロフィールアイコンをクリックし、メニューから「Settings」を選択します。それから、左側のメニューにある「Developer settings」をクリックします。

新しいトークンの生成

ここからはFine-grained personal access tokensの発行手順です。

トークン名と有効期限の設定

「Fine-grained tokens」セクションに移動し、「Generate new token」をクリックします。

すると新しいトークンを生成するためのフォーマットが表示されます。最初に、トークンの名前を設定します。例えば「MyToken」など、自分が分かりやすい名前を付けると良いでしょう。そして、有効期限を設定します。こちらは自分の使用状況に応じて選びます。

リポジトリアクセスと権限の設定

次に、リポジトリアクセスの設定を行います。必要なリポジトリに対してのみアクセスを許可するよう、権限をカスタマイズしてください。例えば、リポジトリの読み取り、書き込み、公開設定など細かく指定できます。

トークンの生成とコピー

設定が完了したら、「Generate token」をクリックします。

成功すると新しいトークンが表示されるので、必ずコピーし安全な場所に保存しておきます。このトークンは一度しか表示されないため、失くさないように注意が必要です。

git cloneの再試行

新しいトークンでの再試行

コピーしたトークンを使って、再度リポジトリのクローンを試みます。コマンドを実行しするとUsernameとPasswordの入力が求められます。Passwordには先ほどコピーしたトークンを入力します。

今度は無事にクローンが完了します。

エクスプローラーで確認

クローンが成功したことを確認したら、エクスプローラーでそのリポジトリが正しくクローンされているかチェックします。これで、新たなトークンを用いたGitHubでの操作が可能になりました。