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.0
a 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.0
a 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.0
a 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)