Udostępnij za pośrednictwem


Zapytania w zakresie projektu i organizacji

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Korzystając z analizy dla usługi Azure DevOps, można tworzyć zapytania, które są ograniczone do projektu lub organizacji lub kolekcji. Te zapytania można uruchamiać bezpośrednio w przeglądarce lub w usłudze Power BI.

Zapytania dotyczące zakresu projektu pomagają odpowiedzieć na pytania dotyczące pojedynczego projektu, natomiast zapytania w zakresie organizacji i kolekcji umożliwiają odpowiadanie na pytania, które przekraczają granice projektu. Zapytania w zakresie organizacji i kolekcji wymagają szerszych uprawnień użytkownika lub starannych ograniczeń określania zakresu, aby upewnić się, że zapytanie nie jest blokowane z powodu braku uprawnień.

Uwaga

Usługa Analytics jest automatycznie włączona i obsługiwana w środowisku produkcyjnym dla wszystkich usług Azure DevOps Services. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne. Zachęcamy do korzystania z niego i przekazywania opinii. Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0, a najnowsza wersja zapoznawcza to v4.0-preview. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.

Uwaga

Usługa Analytics jest automatycznie instalowana i obsługiwana w środowisku produkcyjnym dla wszystkich nowych kolekcji projektów dla usługi Azure DevOps Server 2020 i nowszych wersji. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne. Zachęcamy do korzystania z niego i przekazywania opinii. W przypadku uaktualnienia z usługi Azure DevOps Server 2019 możesz zainstalować usługę Analytics podczas uaktualniania.

Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0, a najnowsza wersja zapoznawcza to v4.0-preview. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.

Uwaga

Usługa Analytics jest dostępna w wersji zapoznawczej dla usługi Azure DevOps Server 2019. Możesz włączyć lub zainstalować dla kolekcji projektów. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są dostępne w wersji zapoznawczej. Zachęcamy do korzystania z niego i przekazywania opinii.

Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0, a najnowsza wersja zapoznawcza to v4.0-preview. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.

Wymagania wstępne

Ważne

Jeśli nie masz dostępu do wszystkich projektów w organizacji, zaleca się zastosowanie filtru projektu do wszystkich zapytań. Podczas ściągania danych do narzędzi klienckich, takich jak power BI lub Excel, użycie składni ścieżki projektu jest najlepszym sposobem zapewnienia, że wszystkie dane są ograniczone przez dany projekt. Zalecamy używanie zapytań o zakresie organizacji lub kolekcji tylko wtedy, gdy trzeba raportować co najmniej dwa projekty.

Zapytania w zakresie projektu

Zapytanie tworzy się, wprowadzając adres URL OData do obsługiwanej przeglądarki internetowej.

Podstawowy adres URL zapytania OData na poziomie projektu jest pokazany w poniższej składni.

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

W podanych przykładach zastąp {OrganizationName} wartości i {ProjectName} swoimi nazwami organizacji i projektu, którego chcesz wykonać zapytanie.

Uwaga

Pozostałe przykłady przedstawione w tym artykule są oparte na adresie URL usług Azure DevOps Services. W celu wykonania przykładów należy zastąpić adres URL serwera Azure DevOps Server.

Zwracanie liczby elementów roboczych

Na przykład następujące zapytanie w zakresie projektu zwraca liczbę elementów roboczych dla określonego projektu.

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

Na przykład zapytanie projektu Fabrikam Fiber zwraca liczbę elementów roboczych 7126. Usunięte elementy robocze nie są uwzględniane w liczbie.

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

7126

Zwracanie ścieżek obszaru projektu

Podobnie następujący ciąg zapytania zwróci obszary dla określonego projektu:

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

Jest on odpowiednikiem następującego filtru w zapytaniu o zakresie organizacji:

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

Na przykład zapytanie projektu Fabrikam Fiber zwraca wszystkie właściwości zdefiniowane dla ścieżki obszaru, ponieważ żaden operator nie $select jest stosowany w zapytaniu.

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

W poniższym przykładzie przedstawiono dane zwrócone dla pojedynczej ścieżki obszaru.

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

Użycie opcji $expand

W przypadku korzystania z zapytania w zakresie projektu z opcją $expand nie jest wymagane podanie innych filtrów.

Na przykład następujący filtr o zakresie projektu:

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

jest filtrowany automatycznie w celu wymuszenia zabezpieczeń:

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

Zapytania w zakresie organizacji

Podstawowy adres URL zapytań na poziomie organizacji wygląda następująco:

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

W przypadku korzystania z zapytania w zakresie organizacji z opcją $expand należy podać inny filtr.

Na przykład następujące zapytanie o zakresie organizacji, które używa elementu $expand , aby pobrać elementy podrzędne wszystkich elementów roboczych.

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

Wymaga to innego filtru, aby sprawdzić, czy elementy podrzędne są ograniczone do określonego projektu:

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

Zwróć element nadrzędny wszystkich elementów roboczych

Poniższe zapytanie, które używa $expand opcji do pobrania elementu nadrzędnego wszystkich elementów roboczych.

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

Wymaga innego filtru, aby sprawdzić, czy element nadrzędny jest ograniczony do określonego projektu:

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

Bez innego filtru żądanie zakończy się niepowodzeniem, jeśli element nadrzędny żadnego elementu roboczego odwołuje się do elementów roboczych w projekcie, do którego nie masz dostępu do odczytu.

Ograniczenia zabezpieczeń na poziomie projektu

Analiza ma jeszcze kilka ograniczeń dotyczących składni zapytań związanych z zabezpieczeniami na poziomie projektu.

Filtry any lub all dotyczą jednostki podstawowej w obiekcie $expand. W przypadku filtrów opartych na projekcie jawnie ignorujemy filtr podczas korzystania z elementu $expand:

Na przykład następujące zapytanie:

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

Jest interpretowany jako:

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

i zakończy się niepowodzeniem, jeśli nie masz dostępu do wszystkich projektów.

Aby obejść to ograniczenie, należy dodać dodatkowe wyrażenie w pliku $filter:

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

Użycie $level jest obsługiwane tylko wtedy, gdy masz dostęp do wszystkich projektów w kolekcji lub w przypadku korzystania z zapytania o zakresie projektu:

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

Analiza nie obsługuje żadnego odwołania między poziomami dla projektów przy użyciu klauzuli $it . Na przykład następujące zapytanie odwołuje się do głównego elementu ProjectName roboczego przy użyciu $it aliasu, który nie jest obsługiwany:

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

Następny krok