Kueri yang dilingkup proyek dan organisasi
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Dengan menggunakan Analytics untuk Azure DevOps, Anda dapat membuat kueri yang dilingkupkan ke proyek atau organisasi atau koleksi. Anda bisa menjalankan kueri ini langsung di browser Anda atau di dalam Power BI.
Kueri cakupan proyek membantu menjawab pertanyaan tentang satu proyek sedangkan kueri terlingkup organisasi dan koleksi memungkinkan Anda menjawab pertanyaan yang melintasi batas proyek. Kueri tercakup organisasi dan pengumpulan memerlukan izin pengguna yang lebih luas atau pembatasan cakupan yang cermat untuk memastikan bahwa kueri Anda tidak diblokir karena kurangnya izin.
Catatan
Layanan Analitik diaktifkan secara otomatis dan didukung dalam produksi untuk semua Layanan Azure DevOps. Integrasi dan akses Power BI ke umpan OData Dari Layanan Analitik umumnya tersedia. Kami mendorong Anda untuk menggunakannya dan memberi kami umpan balik.
Data yang tersedia bergantung pada versi. Versi terbaru yang didukung adalah v2.0
, dan versi pratinjau terbaru adalah v4.0-preview
. Untuk informasi selengkapnya, lihat Penerapan versi OData API.
Catatan
Layanan Analytics secara otomatis diinstal dan didukung dalam produksi untuk semua koleksi proyek baru untuk Azure DevOps Server 2020 dan versi yang lebih baru. Integrasi dan akses Power BI ke umpan OData Dari Layanan Analitik umumnya tersedia. Kami mendorong Anda untuk menggunakannya dan memberi kami umpan balik. Jika Anda meningkatkan dari Azure DevOps Server 2019, maka Anda dapat menginstal layanan Analytics selama peningkatan.
Data yang tersedia bergantung pada versi. Versi terbaru yang didukung adalah v2.0
, dan versi pratinjau terbaru adalah v4.0-preview
. Untuk informasi selengkapnya, lihat Penerapan versi OData API.
Catatan
Layanan Analitik sedang dalam pratinjau untuk Azure DevOps Server 2019. Anda dapat mengaktifkan atau menginstalnya untuk koleksi proyek. Integrasi dan akses Power BI ke umpan OData Layanan Analitik ada di Pratinjau. Kami mendorong Anda untuk menggunakannya dan memberi kami umpan balik.
Data yang tersedia bergantung pada versi. Versi terbaru yang didukung adalah v2.0
, dan versi pratinjau terbaru adalah v4.0-preview
. Untuk informasi selengkapnya, lihat Penerapan versi OData API.
Prasyarat
- Akses: Menjadi anggota proyek dengan setidaknya akses Dasar .
- Izin: Secara default, anggota proyek memiliki izin untuk mengkueri Analitik dan membuat tampilan.
- Untuk informasi selengkapnya tentang prasyarat lain mengenai pengaktifan layanan dan fitur serta aktivitas pelacakan data umum, lihat Izin dan prasyarat untuk mengakses Analitik.
Penting
Jika Anda tidak memiliki akses ke semua proyek dalam organisasi, disarankan agar Anda menerapkan filter proyek ke semua kueri Anda. Saat menarik data ke alat klien seperti Power BI atau Excel, menggunakan sintaks jalur proyek adalah cara terbaik untuk memastikan bahwa semua data Anda dibatasi oleh proyek tertentu. Sebaiknya Gunakan kueri yang terlingkup organisasi atau cakupan koleksi hanya saat Anda perlu melaporkan dua proyek atau lebih.
Kueri cakupan proyek
Anda membuat kueri dengan memasukkan URL OData ke browser web yang didukung.
URL dasar untuk kueri OData tingkat proyek seperti yang diperlihatkan dalam sintaks berikut.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/
Dalam contoh yang disediakan, ganti {OrganizationName}
dan {ProjectName}
dengan nama organisasi dan proyek yang ingin Anda kueri.
Catatan
Contoh yang tersisa yang disediakan dalam artikel ini didasarkan pada URL Layanan Azure DevOps. Anda harus mengganti di URL Server Azure DevOps Anda untuk menjalankan contoh.
Mengembalikan jumlah item kerja
Misalnya, kueri cakupan proyek berikut mengembalikan jumlah item kerja untuk proyek tertentu.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems/$count
Misalnya, kueri proyek Fabrikam Fiber mengembalikan hitungan 7126 item kerja. Item kerja yang dihapus tidak disertakan dalam hitungan.
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/WorkItems/$count
7126
Mengembalikan Jalur Area proyek
Demikian juga, string kueri berikut akan mengembalikan area untuk proyek tertentu:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/Areas
Ini setara dengan filter berikut pada kueri cakupan organisasi:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
$filter=Project/ProjectName eq '{ProjectName}'
Misalnya, kueri proyek Fabrikam Fiber mengembalikan semua properti yang ditentukan untuk Jalur Area karena tidak ada $select
operator yang diterapkan dalam kueri.
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/Areas
Contoh berikut menunjukkan data yang dikembalikan untuk satu Jalur Area.
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
Penggunaan opsi $expand
Saat menggunakan kueri cakupan proyek dengan $expand
opsi, Anda tidak diharuskan menyediakan filter lain.
Misalnya, filter cakupan proyek berikut:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems?
$expand=Parent
difilter secara otomatis untuk memberlakukan keamanan:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}'
&$expand=Parent($filter=ProjectName eq '{ProjectName}')
Kueri yang dilingkup organisasi
URL Dasar untuk kueri tingkat organisasi seperti yang ditunjukkan:
https://analytics.dev.azure.com/{OrganizationName}/_odata/v1.0
Saat menggunakan kueri yang dilingkup organisasi dengan $expand
opsi, Anda harus menyediakan filter lain.
Misalnya, kueri cakupan organisasi berikut, yang menggunakan $expand
untuk mengambil anak dari semua item kerja.
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Children
Ini memerlukan filter lain untuk memverifikasi bahwa anak-anak terbatas pada proyek yang ditentukan:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Children($filter=Project/ProjectName eq '{ProjectName}')
Mengembalikan induk dari semua item kerja
Kueri berikut, yang menggunakan $expand
opsi untuk mengambil induk semua item kerja.
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Parent
Ini memerlukan filter lain untuk memverifikasi bahwa induk terbatas pada proyek yang ditentukan:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Parent($filter=Project/ProjectName eq '{ProjectName}')
Tanpa filter lain, permintaan akan gagal jika induk item kerja mereferensikan item kerja dalam proyek yang tidak dapat Anda akses baca.
Pembatasan keamanan tingkat proyek
Analitik memiliki beberapa batasan lagi pada sintaks kueri yang terkait dengan keamanan tingkat proyek.
Filter any
atau all
berlaku untuk entitas dasar pada $expand
. Untuk filter berdasarkan proyek, kami secara eksplisit mengabaikan filter saat menggunakan $expand
:
Misalnya, kueri berikut:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}'
&$expand=Children($filter=Project/ProjectName eq '{ProjectName}')
Ditafsirkan sebagai:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}'
&$expand=Children
dan akan gagal jika Anda tidak memiliki akses ke semua proyek.
Untuk mengatasi pembatasan, Anda perlu menambahkan ekspresi tambahan di $filter
:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}' and Children/any(r: r/ProjectName eq '{ProjectName}')
&$expand=Children
Penggunaan $level
hanya didukung jika Anda memiliki akses ke semua proyek dalam koleksi atau saat menggunakan kueri cakupan proyek:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$expand=Children($levels=2;$filter=ProjectName eq '{ProjectName}')
Analitik tidak mendukung referensi lintas tingkat untuk proyek menggunakan $it
klausa. Sebagai contoh, kueri berikut mereferensikan item ProjectName
kerja akar menggunakan $it
alias, yang tidak didukung:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$expand=Links(
$expand=TargetWorkItem;
$filter=TargetWorkItem/Project/ProjectName eq $it/Project/ProjectName)