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. Power BI integrace a přístup k datovému kanálu OData služby Analytics jsou obecně k dispozici. 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 běžně 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.

Požadavky

Kategorie Požadavky
Úrovně přístupu - Člen projektu.
- Alespoň základní přístup.
Oprávnění Ve výchozím nastavení mají členové projektu oprávnění provádět dotazy v Analytice a vytvářet 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, použijte filtr projektu na všechny dotazy. Při načítání dat do klientských nástrojů, jako je Power BI nebo Excel, použijte syntaxi cesty k projektu a ujistěte se, že jsou všechna vaše data omezená daným projektem. Používejte dotazy zaměřené na úroveň organizace nebo kolekce pouze tehdy, když potřebujete vytvářet reporty o dvou nebo více projektech.

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 v tomto článku jsou založené na adrese URL služby Azure DevOps Services. Nahraďte adresu URL serveru Azure DevOps a použijte příklady.

Vrátit počet 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 7 126 pracovních položek. 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 na dotaz v rámci 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 oblastní cestu, 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, která jsou vrácena pro jednu oblastní cestu.

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 a vynucuje 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 na úrovni organizace s $expand volbou 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 děti jsou omezovány 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átit nadřazený prvek všech pracovních položek

Následující dotaz, který využívá možnost $expand k načtení nadřazené položky pro všechny pracovní položky.

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

Aby bylo možné ověřit, že nadřazený objekt je omezen na zadaný projekt, je potřeba 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á pracovní položka jakékoli pracovní položky odkazuje na pracovní položky v projektu, ke kterému nemáte oprávnění 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.

any Nebo all 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 selže, pokud nemáte přístup ke všem projektům.

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