連休中に何をやってるんだ・・・と、苦悶の声を漏らしました。
- SourceTree
- BitBucket
という環境での出来事です。
現象
ただのプッシュは問題ないのですが、フィーチャーブランチを閉じて、developマージの際に悲劇は起きたのでした。
git flow feature finish fatal: HttpRequestException encountered. bash: /dev/tty: No such device or address error: failed to execute prompt script (exit code 1) fatal: could not read Password for 'https://xxxx@bitbucket.org': No error
様々な記事を参考にし、あれこれ設定し直しました。
セキュリティに関する記事って、どうしても全てを晒すわけには行かないので、手取り足取りカバーしづらいですよね。
私が対応したこと
SSHの再設定
PUTTYをダウンロードして一からSSHを設定し直しました。
基本は下記のサイトの「Set up SSH with Sourcetree on Windows」に従えば良いです。
Set up an SSH key - Atlassian Documentation
が、SourceTreeのメニューのツール-SSHエージェントを起動でもPUTTYは立ち上がりません。
ツール-オプションで、SSHクライアントをOpenSSHからPuttyに切り替える必要があります。
ホスティングアカウントの設定
新しいタブを開き、Remoteリポジトリに切り替え、アカウントを追加。
BitBucket,SSH,Basicで自分のユーザーを登録しました。
※この手順は、先ほど記載したSSHの再設定の最初の手順に含まれています。
リポジトリのパスの設定
右上の設定画面からリポジトリのパスを確認して、https://xxxx@bitbucket.orgではなく、git@bitbucket.orgの形式に設定を変更しました。
原因はなんだった
ほとんど闇雲な暗中模索で解消しましたが、自分で、たまにはSourceTreeのログを見て、と書いておきながら、自分では見ようとはしてませんでした。
下記のようなログが出ているのでした。なのでSSHの再設定は必要なかったかもしれないです。
ログを見て、リポジトリのパスをhttps://から、git://に変更したことが直接の問題解決になったかと思います。
ERROR [2019-05-03 17:08:46,730] [48] [SourceTree.Analytics.NPS.Service.NPSFeedbackService] [Log] - NPS: Couldn't record shown prompt System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: リモート名を解決できませんでした。: 'sourcetree-nps-bridge.us-east-1.prod.public.atl-paas.net' 場所 System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context) 場所 System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar) --- 内部例外スタック トレースの終わり --- 場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所 SourceTree.Analytics.NPS.Transport.AuthHttpClientHandler.<SendAsync>d__2.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所 System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所 Refit.RequestBuilderImplementation.<>c__DisplayClass17_0.<<BuildVoidTaskFuncForMethod>b__0>d.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所 SourceTree.Analytics.NPS.Service.NPSFeedbackService.<RecordShownPromptAsync>d__18.MoveNext()