Lesstep
Azure DevOps Server・Services・REST API

「API resource location … is not registered on …」

Azure DevOps 用の Microsoft のクライアント ライブラリは、決まったアドレスを直接呼びません。まずサーバーに REST API の一覧を聞き、呼び出しをその GUID で一覧から探します。GUID が一覧に無いと、呼び出しを送る前に止まって、こう言います:API resource location 9946fd70-0d40-406e-b686-b4744cbbcc37 is not registered on https://server/tfs/DefaultCollection.

一覧はどこから来るか

3つの原因

  1. その API がサーバーに無い。Azure DevOps Server はそれぞれの版の時の API を持ち、Azure DevOps Services にしか無い API もあります。公開の報告:Azure DevOps Server 2020 での az devops security group list(azure-devops-cli-extension #1126・GUID は 048aee0a-…=Graph の descriptors。dev.azure.com ではこの GUID は組織の一覧には無く、vssps.dev.azure.com の側にあります)、Azure DevOps Server 2020 での Cache タスク(Microsoft の担当者が「社内設置では使えない」と答えた・azure-pipelines-tasks #13937)、Azure DevOps Server 2022 での Terraform のプロバイダー(作者側は dev.azure.com でしか試していない・#709)。設定で API を足すことはできません。別の呼び出しや道具を使うか、新しいサーバーにします。
  2. アドレスにコレクションが無い。Team Foundation Server と Azure DevOps Server では、API はコレクションの下にあります。http://server:8080/tfs ではなく http://server:8080/tfs/DefaultCollection です。TFS 2018 での報告では、アドレスのパスが一部欠けていたのが原因でした(azure-devops-cli-extension #990)。
  3. 一覧が届いていない。サインインに失敗すると一覧が取れず、どの GUID も「無い」ことになります。Microsoft 自身の IntelliJ プラグインの報告では、dev.azure.com のプルリクでのこの文の最後に HTTP 302 Found(一覧の代わりの転送)が付いていました(azure-devops-intellij #397)。個人用アクセストークンを確かめてください:期限切れ・別の組織用・スコープ不足。

呼び出し1回で見分ける

curl -u :YOUR_TOKEN -X OPTIONS -H "Accept: application/json" "http://server:8080/tfs/DefaultCollection/_apis"

IntelliJ IDEA・Rider などの JetBrains IDE では

Azure DevOps Pull Requests は、JetBrains IDE(2024.1 以降)と Android Studio のプルリク用プラグインです。この一覧は使いません。プルリクの REST の住所を直接呼び、サーバーが名前を出した版まで api-version を自分で下げます(その答え)。Azure DevOps Services、Azure DevOps Server 2019 以降、Team Foundation Server 2018 Update 2 以降(/tfs/ のアドレスも)で使えます。読むのは無料、投票・コメント・完了は Pro(30日間の無料試用つき)です。

JetBrains Marketplace で入れる

Azure DevOps は Microsoft Corporation の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Microsoft・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:TF400733(レート制限) · 「The latest REST API version this server supports is…」 · 「is under preview」 · TF400813 · TFS 2018・Server 2019 で使う · English