Team Foundation Server 2018・REST API
TFS 2018 が REST の呼び出しに「Page not found.」と答える
新しいサーバーは、新しすぎる api-version に、正しい版を書いた JSON のエラーで答えます。Team Foundation Server 2018 はそうしません。HTML のエラーページを HTTP 404 で返すので、JSON を待つ道具には「HTTP 404」や読み取りエラーしか出ず、版が原因だと分かりません。
返ってくるもの
HTTP 404 と、次の HTML のページ:
Page not found. - Microsoft Team Foundation Server Error The page you are looking for is currently unavailable. Page not found. Things you can try: Refresh the current page Go back to the previous page Sign in as a different user
和訳:「ページが見つかりません。お探しのページは現在利用できません。試せること:このページを再読み込みする/前のページに戻る/別のユーザーでサインインする」。
新しく入れた TFS 2018 Update 3(Express・2026年10月16日)で、{コレクション}/_apis/projects?api-version=9.9 と、api-version=7.1 で送ったプロジェクトと Git の呼び出しに、このページが返りました。
呼び出しの直し方
api-version=4.1で送る。TFS 2018 Update 3 では、試したプルリクの呼び出し(一覧・差分・コメント・投票・完了)が全部これで通りました。- Microsoft の表では TFS 2018 は 4.0 までと書かれています(REST API のバージョン管理)。Update 3 より前の TFS 2018 では試していません。
- 4.1 でも「Page not found」なら住所を確かめる:コレクションも住所の一部です(例
http://tfs.example.local:8080/tfs/DefaultCollection/_apis/...)。
TFS 2018 が黙って無視するもの
TFS 2018 Update 3 では、次の2つはエラーにもなりません。
- 下書きのプルリク。下書きとして作っても、ふつうのレビュー待ちのプルリクとして返ってきます。
- リベースと半線形マージ。これで完了させても、マージコミットになります。マージコミットとスカッシュは使えます。
IntelliJ IDEA・Rider など JetBrains IDE なら
Azure DevOps Pull Requests は、JetBrains IDE(2024.1 以降)のプルリク用プラグインです。このページが返ってきたら 4.1 で1回確かめ、TFS 2018 Update 2 以降とは 4.1 で話します。それより古いサーバーには「HTTP 404」ではなく「サーバーが古い」と表示します。TFS 2018 では下書きの選択肢を切り、完了の方法はマージコミットとスカッシュを出します。読むのは無料、投票・コメント・完了は Pro(30日間の無料試用つき)です。