VSTS(旧VSOnline)にコマンドを投げれなくてはまった(2)
Basic認証を許可すればコマンドからGitリポジトリにアクセスできることはわかりました。 また、PSスクリプトからコマンドを投げる(実際にはgit.exeのプロセスを起動)際にも問題がありそうだということも分かりました。
スクリプトからの呼び出しについては、実は大体原因が分かっていて、コマンドラインから自分でコマンドを実行してみると途中でユーザ名・パスワードを聞かれるのと同じことが起きているものの、スクリプト内では単純にプロセスを起動しているだけなので、標準入力で待ちの状態になっていると思われます。なので、然るべき処理を追加してユーザ名とパスワードを流し込んでやれば多分実行できます。
しかし、そもそも論というか、HTTPSとはいえ今どきBasic認証ってどうなん・・?という疑問も残ります。ふと、そんなことを思っていたところ、きよくらさんよりありがたい啓示が。
あれ、これインストールして使えって藩士でしたっけ? (混乱中) Git-Credential-Manager-for-Windows
https://t.co/lEhflm2nlJ
— きよくらならみ (@kiyokura) 2015, 12月 16
要は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