LoginSignup
3
5

More than 1 year has passed since last update.

Azure DevOps のリポジトリを Sourcetree のリモートにしたら既知の問題でつまずきかけた件について

Last updated at Posted at 2021-08-17

要旨

  • 現在 Azure DevOps でプロジェクトを作成すると、ホストURLのドメインが dev.azure.com になる。昔は visualstudio.com だった。
  • Sourcetree が新しいドメインに対応していないため、Azure DevOps のリポジトリをリモートに設定する場合、以前の形式に合わせるような形で URL を変えないといけない(クローンやプッシュでエラーになる)。
  • ただし、この問題は Sourcetree 3.4.3 で修正済みの可能性がある。

はじめに

どうも。「バーチャルためにならない改変お姉さん」の水無月せきなです。

こちらを参考にしながら Git でアバターなどのプロジェクトの管理を始めてみたのですが1、いざ別の PC でクローンしようとした際にエラーが起きました。フレンドの助けを借りて1 クローン自体はできたものの、URL のコピペでは相変わらずエラー……何かおかしいぞと思って少し調べたら、既知の問題に引っかかっていただけかもしれないというお話です。
ついでに、エラーへの対応として行った作業も備忘録的に書きます。

環境

Windows 10 Home( 20H2 )
Git version 2.32.0.windows.2
Git-LFS /2.13.3 (GitHub; windows amd64; go 1.16.2; git a5e65851)
Sourcetree 3.4.5

クローンでエラー「 fatal: Authentication failed 」

エラーメッセージの後にクローン用の URL が続くのですが、意味的には「認証に失敗した」というエラーですよね。
それまで使っていた PC とは別の PC ということもあり、Personal Access Token を新規に発行して Sourcetree のアカウントに追加しました。

Azure DevOps 側での作業

  1. Azure DevOps の「 UserSettings 」から「 Personal access token 」を選択
  2. 「 New Token 」を選択後、必要に応じて設定してトークンを発行(発行画面を閉じると二度とトークンを確認できないので注意)

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f313834333437322f63363562316437612d626336332d373736342d333531362d3637336633633138663530622e706e.png

Sourcetree 側での作業

  1. 「 Remote 」で「アカウントを追加」を選択
  2. 「ホスティングサービス」で「 Azure DevOps 」を選択
  3. ホスト URL は「 https://{userName}.visualstudio.com/ 」
  4. 「 Personal Access Token を再読み込み」を押下するとユーザー名とパスワードを聞かれるので、ユーザー名は Azure DevOps のアカウント名、パスワードに Personal Access Token を入力してエンター。

無題2.png

これで、リモートリポジトリ一覧からクローンができるようになるはずです。

でも、クローン用 URL からはクローンができない……

Azure DevOps からクローン用の URL をコピーすると、https://*****@dev.azure.com/*****/xxxxx/_git/xxxxx というものになります。前述の設定をしても、こちらをコピペしてクローンしようとすると Git リポジトリでないとされてしまいます。
どうやらSourcetree が新しいドメインに対応していないため、https://*****.visualstudio.com/xxxxx/_git/xxxxx という形に変えないといけないようです。両 URL 内の「*****」と「xxxxx」は対応しています。
URL を変えたら、クローンができました。ひょっとして、認証エラーは URL が違うということだったのでしょうか……?

おわりに

ということで、クローン時に起きた認証エラーの原因は、もちろん認証情報が無かったからという可能性もありますが、そもそも Sourcetree が Git リポジトリの URL だと認識できなかったことによる可能性もでてきました。
CLI では普通に URLのコピペでクローンできたため、認識できないのは Sourcetree 側の問題のようです。
しかし、Sourcetree のリリースノートの 3.4.3 の箇所には、下記の記載があります。

Fixed failing authentication for Azure devops

「 Azure DevOps での認証失敗を直した」ですよね。
そう、もともと開発を行っていた PC では、https://*****@dev.azure.com/*****/xxxxx/_git/xxxxx という形式でもリモートへのプッシュはできていました
ちなみに、以前の環境は以下の通りです。

Windows 10 Home( 20H2 )
Git version 2.32.0.windows.2
Git-LFS /2.13.3 (GitHub; windows amd64; go 1.16.2; git a5e65851)
Sourcetree 3.4.5

冒頭に上げた現在の環境を再掲します。

Windows 10 Home( 20H2 )
Git version 2.32.0.windows.2
Git-LFS /2.13.3 (GitHub; windows amd64; go 1.16.2; git a5e65851)
Sourcetree 3.4.5

違いがどこにあるのやら。

Azure DevOps の設定は以前の PC でしたため、そこが原因なのでしょうか……。
また、LFS のダウンロードでは「 https://*****.visualstudio.com/xxxxx/_git/xxxxx なんて無い(Not Found)」というエラーが起きることもありました。
おそらく LFS の参照は https://*****@dev.azure.com/*****/xxxxx/_git/xxxxx なんでしょうが、困りました。リモートの設定を https://*****.visualstudio.com/xxxxx/_git/xxxxx としてやり直すしか無いかもしれません。

既に解消済みの可能性がありますが、どなたかの役に立てば幸いです。

参考

以下、いずれも2021年8月17日最終閲覧
Connecting Sourcetree with Azure DevOps Repository
Soucetreeを使ってAzure DevOpsのリポジトリへプッシュする
Azure DevOps のリポジトリをSourcetreeで管理する


  1. にしのんさんにご教示をいただきました。 

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5