Sdílet prostřednictvím


Dotazy v rozsahu projektu a organizace

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Pomocí Analýzy pro Azure DevOps můžete vytvářet dotazy, které jsou vymezeny na projekt nebo organizaci nebo kolekci. Tyto dotazy můžete spouštět přímo v prohlížeči nebo v Power BI.

Dotazy v rozsahu projektu pomáhají zodpovědět otázky týkající se jednoho projektu, zatímco dotazy s oborem organizace a kolekce umožňují odpovídat na otázky, které překračují hranice projektu. Dotazy s oborem organizace a kolekce vyžadují širší uživatelská oprávnění nebo opatrná omezení rozsahu, aby se zajistilo, že váš dotaz není zablokovaný kvůli nedostatku oprávnění.

Poznámka:

Služba Analytics je automaticky povolená a podporovaná v produkčním prostředí pro všechny služby Azure DevOps Services. Integrace Power BI a přístup k datovému kanálu OData služby Analytics jsou obecně dostupné. Doporučujeme, abyste ho používali a poskytli nám zpětnou vazbu. Dostupná data jsou závislá na verzi. Nejnovější podporovaná verze je v2.0a nejnovější verze Preview je v4.0-preview. Další informace najdete v tématu Správa verzí rozhraní API OData.

Poznámka:

Služba Analytics se automaticky nainstaluje a podporuje v produkčním prostředí pro všechny nové kolekce projektů pro Azure DevOps Server 2020 a novější verze. Integrace Power BI a přístup k datovému kanálu OData služby Analytics jsou obecně dostupné. Doporučujeme, abyste ho používali a poskytli nám zpětnou vazbu. Pokud jste upgradovali z Azure DevOps Serveru 2019, můžete během upgradu nainstalovat službu Analytics.

Dostupná data jsou závislá na verzi. Nejnovější podporovaná verze je v2.0a nejnovější verze Preview je v4.0-preview. Další informace najdete v tématu Správa verzí rozhraní API OData.

Poznámka:

Služba Analytics je ve verzi Preview pro Azure DevOps Server 2019. Můžete ji povolit nebo nainstalovat pro kolekci projektů. Integrace Power BI a přístup k datovému kanálu OData služby Analytics jsou ve verzi Preview. Doporučujeme, abyste ho používali a poskytli nám zpětnou vazbu.

Dostupná data jsou závislá na verzi. Nejnovější podporovaná verze je v2.0a nejnovější verze Preview je v4.0-preview. Další informace najdete v tématu Správa verzí rozhraní API OData.

Požadavky

  • Přístup: Buďte členem projektu s alespoň základním přístupem.
  • Oprávnění: Ve výchozím nastavení mají členové projektu oprávnění k dotazování na Analýzy a vytváření zobrazení.
  • Další informace o dalších požadavcích týkajících se povolení služeb a funkcí a obecných aktivit sledování dat najdete v tématu Oprávnění a požadavky pro přístup k Analýzám.

Důležité

Pokud nemáte přístup ke všem projektům v organizaci, doporučujeme použít filtr projektu pro všechny dotazy. Při načítání dat do klientských nástrojů, jako je Power BI nebo Excel, je použití syntaxe cesty projektu nejlepším způsobem, jak zajistit, aby byla všechna vaše data omezena daným projektem. Dotazy s oborem organizace nebo kolekce doporučujeme používat jenom v případě, že potřebujete nahlásit dva nebo více projektů.

Dotazy v rozsahu projektu

Dotaz vytvoříte zadáním adresy URL OData do podporovaného webového prohlížeče.

Základní adresa URL dotazu OData na úrovni projektu je znázorněná v následující syntaxi.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/

V uvedených příkladech nahraďte {OrganizationName} názvy {ProjectName} vaší organizace a projektu, které chcete dotazovat.

Poznámka:

Zbývající příklady uvedené v tomto článku jsou založené na adrese URL služby Azure DevOps Services. Abyste mohli příklady vyzkoušet, budete muset nahradit adresu URL azure DevOps Serveru.

Vrácení počtu pracovních položek

Například následující dotaz v oboru projektu vrátí počet pracovních položek pro konkrétní projekt.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems/$count

Například dotaz projektu Fabrikam Fiber vrátí počet pracovních položek 7126. Odstraněné pracovní položky se do počtu nezahrnou.

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/WorkItems/$count

7126

Návrat cest k oblasti projektu

Podobně následující řetězec dotazu vrátí oblasti pro konkrétní projekt:

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/Areas

Odpovídá následujícímu filtru dotazu v oboru organizace:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
  $filter=Project/ProjectName eq '{ProjectName}'

Například dotaz projektu Fabrikam Fiber vrátí všechny vlastnosti definované pro cestu oblasti, protože v dotazu není použit žádný $select operátor.

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/Areas

Následující příklad ukazuje data vrácená pro jednu cestu k oblasti.

ProjectSK	"56af920d-393b-4236-9a07-24439ccaa85c"
AreaSK	"26be05fd-e68a-4fcb-833f-497f6bee45f2"
AreaId	"26be05fd-e68a-4fcb-833f-497f6bee45f2"
AreaName	"Service Delivery"
Number	55373
AreaPath	"Fabrikam Fiber\\Service Delivery"
AreaLevel1	"Fabrikam Fiber"
AreaLevel2	"Service Delivery"
AreaLevel3	null
AreaLevel4	null
AreaLevel5	null
AreaLevel6	null
AreaLevel7	null
AreaLevel8	null
AreaLevel9	null
AreaLevel10	null
AreaLevel11	null
AreaLevel12	null
AreaLevel13	null
AreaLevel14	null
Depth	1

Použití možnosti $expand

Při použití dotazu s oborem projektu s $expand možností nemusíte poskytovat další filtry.

Například následující filtr s oborem projektu:

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems?
  $expand=Parent

filtruje se automaticky, aby se vynucovala zabezpečení:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}'
  &$expand=Parent($filter=ProjectName eq '{ProjectName}')

Dotazy v oboru organizace

Základní adresa URL pro dotazy na úrovni organizace je znázorněná takto:

https://analytics.dev.azure.com/{OrganizationName}/_odata/v1.0

Při použití dotazu v oboru organizace s $expand možností musíte zadat jiný filtr.

Například následující dotaz v oboru organizace, který používá $expand k načtení podřízených položek všech pracovních položek.

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Children

Vyžaduje další filtr k ověření, že podřízené položky jsou omezené na zadaný projekt:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Children($filter=Project/ProjectName eq '{ProjectName}')

Vrácení nadřazeného prvku všech pracovních položek

Následující dotaz, který používá $expand možnost načíst nadřazenou položku všech pracovních položek.

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Parent

K ověření, že nadřazený objekt je omezený na zadaný projekt, vyžaduje další filtr:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Parent($filter=Project/ProjectName eq '{ProjectName}')

Bez dalšího filtru požadavek selže, pokud nadřazená položka jakékoli pracovní položky odkazuje na pracovní položky v projektu, ke kterému nemáte přístup pro čtení.

Omezení zabezpečení na úrovni projektu

Analýza má několik dalších omezení syntaxe dotazů souvisejících se zabezpečením na úrovni projektu.

all Nebo any filtry se vztahují na základní entitu na objektu $expand. U filtrů založených na projektu filtry explicitně ignorujeme při použití $expand:

Například následující dotaz:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}'
  &$expand=Children($filter=Project/ProjectName eq '{ProjectName}')

Interpretuje se takto:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}'
  &$expand=Children

a pokud nemáte přístup ke všem projektům, selže.

Chcete-li obejít omezení, je nutné přidat další výraz v :$filter

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}' and Children/any(r: r/ProjectName eq '{ProjectName}')
  &$expand=Children

Použití $level se podporuje pouze v případě, že máte přístup ke všem projektům v kolekci nebo při použití dotazu v oboru projektu:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $expand=Children($levels=2;$filter=ProjectName eq '{ProjectName}')

Analýza nepodporuje žádné odkazy na různé úrovně pro projekty používající klauzuli $it . Následující dotaz například odkazuje na kořenovou pracovní položku ProjectName pomocí $it aliasu, který se nepodporuje:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $expand=Links(
    $expand=TargetWorkItem;
    $filter=TargetWorkItem/Project/ProjectName eq $it/Project/ProjectName)

Další krok