はじめに
WSL2上のVimにGitHub Copilotを導入しようとした際、認証まわりでつまずきました。 同じ問題に遭遇された方の参考になればと思い、解決策をまとめます。
インストール
copilot.vim のREADMEに従い、以下のコマンドでプラグインをインストールします。
git clone --depth=1 https://github.com/github/copilot.vim.git \
~/.vim/pack/github/start/copilot.vimインストール後、Vimを起動して :Copilot setup を実行すると、ブラウザでGitHub認証を行う画面が表示されます。
発生した問題
ブラウザ側で認証を完了したあと、Vimに戻っても認証が一向に完了しませんでした。 GitHubのコミュニティを調べたところ、同様の問題に遭遇しているユーザーが複数いることがわかりました。
WSL2環境特有の問題のようで、WSL2側から直接認証を通すのは難しい状況です。
解決策:Windows側で認証してトークンをコピーする
WSL2側で認証が通らない場合、Windows側のVimで認証を済ませ、生成されたトークンファイルをWSL2側にコピーすることで解決できます。
1. Windows側にScoopをインストールする
今回はWindows側のVimをScoopでインストールして認証を行います。 PowerShellを開き、以下のコマンドを実行します。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression2. VimとNode.jsをインストールする
Copilot VimはNode.jsに依存しているため、以下のコマンドでVimとNode.jsをインストールします。
scoop install vim
scoop bucket add main
scoop install main/nodejs-lts3. Windows側のVimで認証する
Windows側のVimを起動し、:Copilot setup を実行します。 ブラウザが開くのでGitHubアカウントで認証を完了します。
4. トークンファイルをWSL2側にコピーする
認証が完了すると、Windows側の以下のパスにトークンファイルが生成されます。
C:\Users\<ユーザー名>\AppData\Local\github-copilot\apps.json
このファイルをWSL2側の ~/.config/github-copilot/apps.json にコピーします。
mkdir -p ~/.config/github-copilot
cp /mnt/c/Users/<ユーザー名>/AppData/Local/github-copilot/apps.json \
~/.config/github-copilot/apps.json5. WSL2側で動作確認する
WSL2側のVimを起動し、:Copilot status を実行します。 認証済みのステータスが表示されれば完了です。
まとめ
WSL2上のVimでCopilotの認証が通らない場合は、Windows側で認証を済ませてトークンファイルをコピーすることで解決できます。 同じ問題で困っている方の参考になれば幸いです。


コメント