VSTS(旧VSOnline)にコマンドを投げれなくてはまった(2)

Basic認証を許可すればコマンドからGitリポジトリにアクセスできることはわかりました。 また、PSスクリプトからコマンドを投げる(実際にはgit.exeのプロセスを起動)際にも問題がありそうだということも分かりました。

スクリプトからの呼び出しについては、実は大体原因が分かっていて、コマンドラインから自分でコマンドを実行してみると途中でユーザ名・パスワードを聞かれるのと同じことが起きているものの、スクリプト内では単純にプロセスを起動しているだけなので、標準入力で待ちの状態になっていると思われます。なので、然るべき処理を追加してユーザ名とパスワードを流し込んでやれば多分実行できます。

しかし、そもそも論というか、HTTPSとはいえ今どきBasic認証ってどうなん・・?という疑問も残ります。ふと、そんなことを思っていたところ、きよくらさんよりありがたい啓示が。

要はVSTSにおける認証を管理してくれるアプリケーションみたいです。

Git-Credential-Manager-for-Windows - GitHub

こいつをインストールした後に、先ほどと同じようにコマンドラインからGitプルとかすると、今度はBasic認証ではなく、新しいウィンドウが開いてMSアカウントでの認証ができるようになり・・・ませんでした(T-T)

どうやら、私の環境では設定が正しく更新されなかったようで、FAQ を参考に credential.helper をセットし、もう一度コマンドを投げることでようやくMSアカウントでの認証となりました。

git config credential.helper manager

ちなみに、コマンドから手動で credential.helper を設定した場合、PCを再起動するともう一度設定し直す必要があるようなので、頻繁に利用する場合は.gitconfig とかを弄る必要がありそうです (未確認)

追記

C:\Users\<ユーザ> フォルダ直下にある .gitconfig に設定を追加すればよいようです。

[credential]
    helper = manager