😥

Cody cliがWSLで認証ができない…?

に公開

WindowsのWSL環境を調整していて、なぜかcody cliの認証ができない現象に遭遇している…。

cody auth login --web

$ cody auth login --web
  Logging in...
? Which Sourcegraph instance do you want to authenticate with? Sign in with sourcegraph.com
✖ failed to authenticate Error: failed to authenticate
    at _Command.<anonymous> (/<SNIP>/node_modules/@sourcegraph/cody/dist/index.js:114598:33)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async _Command.parseAsync (/<SNIP>/node_modules/@sourcegraph/cody/dist/index.js:20985:9)
$

ちゃんとウェブブラウザはひらけて、反応はするんだけどな…?

まあ、Access tokenをつかえばいいか!!

cody auth login --access-token XXXX

CodyのWebサイトでKeyを発行して実行

$ cody auth login --access-token="sgp_XXXX"
✔ Logged in as dev-jnbot at Sourcegraph endpoint https://sourcegraph.com/. Run 'cody auth logout' to log out.
$ cody chat
✖ Not logged in. To fix this problem, run:
        cody auth login --web

…???

努力の跡は見える

$ cat ~/.config/Cody-nodejs/user-settings.json
{
  "accounts": [
    {
      "id": "dev-jnbot",
      "username": "dev-jnbot",
      "serverEndpoint": "https://sourcegraph.com/"
    }
  ],
  "activeAccountID": "dev-jnbot"
}

なんかある…んだけど

$ cody auth accounts
Name       Instance                  Active  Authenticated
---------  ------------------------  ------  -------------
dev-jnbot  https://sourcegraph.com/  Yes     No

やっぱり認証できない…

keychain系をいれろとサジェストはされているが…

sudo apt install libsecret-tools
sudo apt install gnome-keyring

これをいれてもダメ

詰んだ?

cody大好きなのに…

ということでしかたないので…

解決策1

環境変数を設定する

export SRC_ACCESS_TOKEN=sgp_XXXX

うーん…環境変数はさすがにちょっと怖い

解決先2

.cody.jsonを作成する

{
  "accessToken": "sgp_XXXX"
}

平文でかかなきゃいけないけど、環境変数みたいに常時露出するよりはましか。

とにかく認証できた!

$ cody auth whoami
✔ Authenticated as dev-jnbot on https://sourcegraph.com/

まとめ

なんか全然検索にもかからないし、寂しい。

WSLはssh-agentやkeychain周りがなかなかやっぱり変わり者なのかなーと思う。それともnodeをasdfでいれたのが悪いのかな。

とりあえずは解決した…のか?

ほかにもいるかもしれないこまった人に届けばいいな!

ref: https://sourcegraph.com/docs/cody/clients/install-cli

Discussion