blob: fa5ff701827380f9a6491dbc4be94bb99f03b615 [file]
<!doctype html>
<html lang="en-GB" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-Configuration/AzureDevOps">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-rc.1">
<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache DevLake - Open-Source Dev Data Platform for Productivity RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache DevLake - Open-Source Dev Data Platform for Productivity Atom Feed"><title data-rh="true">Azure DevOps | Apache DevLake - Open-Source Dev Data Platform for Productivity</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://devlake.apache.org/docs/Configuration/AzureDevOps"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="keywords" content="Engineering Productivity, Open-Source Engineering, Open-Source Integration Tools, Data Integrates Platform, Open-Source Dev Platform, Open-Source Data Integrates, DevOps Tools Integrates, Open-Source DevOps Tools"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Azure DevOps | Apache DevLake - Open-Source Dev Data Platform for Productivity"><meta data-rh="true" name="description" content="Config UI instruction for Azure DevOps"><meta data-rh="true" property="og:description" content="Config UI instruction for Azure DevOps"><link data-rh="true" rel="icon" href="/img/logo.svg"><link data-rh="true" rel="canonical" href="https://devlake.apache.org/docs/Configuration/AzureDevOps"><link data-rh="true" rel="alternate" href="https://devlake.apache.org/docs/Configuration/AzureDevOps" hreflang="en-GB"><link data-rh="true" rel="alternate" href="https://devlake.apache.org/zh/docs/Configuration/AzureDevOps" hreflang="zh"><link data-rh="true" rel="alternate" href="https://devlake.apache.org/docs/Configuration/AzureDevOps" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.0a4edf75.css">
<link rel="preload" href="/assets/js/runtime~main.566cb87a.js" as="script">
<link rel="preload" href="/assets/js/main.c5c21f25.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region"><a href="#" class="skipToContent_fXgn">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="apache devlake" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/logo.svg" alt="apache devlake" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Apache DevLake</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Docs</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/Overview/Introduction">Next</a></li><li><a class="dropdown__link" href="/docs/v1.0/Overview/Introduction">v1.0 (Stable)</a></li><li><a class="dropdown__link" href="/docs/v0.21/Overview/Introduction">v0.21</a></li><li><a class="dropdown__link" href="/docs/v0.20/Overview/Introduction">v0.20</a></li><li><a class="dropdown__link" href="/docs/v0.19/Overview/Introduction">v0.19</a></li><li><a class="dropdown__link" href="/docs/v0.18/Overview/Introduction">v0.18</a></li><li><a class="dropdown__link" href="/docs/v0.17/Overview/Introduction">v0.17</a></li><li><a class="dropdown__link" href="/docs/v0.16/Overview/Introduction">v0.16</a></li><li><a class="dropdown__link" href="/docs/v0.15/Overview/Introduction">v0.15</a></li></ul></div><a class="navbar__item navbar__link" href="/livedemo/EngineeringLeads/DORA">Use Cases</a><a class="navbar__item navbar__link" href="/community/">Community</a><a class="navbar__item navbar__link" href="/team">Team</a><a class="navbar__item navbar__link" href="/blogOverview">Blog</a><a href="https://github.com/apache/devlake" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub</a><a class="navbar__item navbar__link" href="/download">Download</a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">ASF</a><ul class="dropdown__menu"><li><a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Foundation</a></li><li><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="dropdown__link">License</a></li><li><a href="https://www.apache.org/events/current-event" target="_blank" rel="noopener noreferrer" class="dropdown__link">Events</a></li><li><a href="https://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Security</a></li><li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Privacy</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Sponsorship</a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Thanks</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><div class="navbar__search searchBarContainer_NW3z"><input placeholder="Search" aria-label="Search" class="navbar__search-input"><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebar_njMd"><nav class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/Overview">Overview</a><button aria-label="Toggle the collapsible sidebar category &#x27;Overview&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/GettingStarted">Getting Started</a><button aria-label="Toggle the collapsible sidebar category &#x27;Getting Started&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/docs/Config UI">Config UI</a><button aria-label="Toggle the collapsible sidebar category &#x27;Config UI&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/Tutorial">Tutorial</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/HowToOrganizeDevlakeProjects">How to Organize DevLake Projects</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/Configuration/AzureDevOps">Azure DevOps</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/BitBucket">Bitbucket Cloud</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/BitBucketServer">Bitbucket Server/Data Center</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/CircleCI">CircleCI</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/GitHub">GitHub</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/GitLab">GitLab</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/Opsgenie">Opsgenie</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/Jenkins">Jenkins</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/Jira">Jira</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/PagerDuty">PagerDuty</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/SonarQube">SonarQube Server</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/Tapd">TAPD</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/Teambition">Teambition(WIP)</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/webhook">Webhooks</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/Zentao">Zentao</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/AdvancedMode">Blueprint Advanced Mode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/APIKeys">API Keys</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/Configuration/TeamConfiguration">Team Configuration</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/docs/Configuration/Dashboards/AccessControl">Dashboard Configuration</a></div></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/DORA">DORA</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/Metrics">Metrics</a><button aria-label="Toggle the collapsible sidebar category &#x27;Metrics&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/DataModels">Data Models</a><button aria-label="Toggle the collapsible sidebar category &#x27;Data Models&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/DeveloperManuals">Developer Manuals</a><button aria-label="Toggle the collapsible sidebar category &#x27;Developer Manuals&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/Plugins">Plugins</a><button aria-label="Toggle the collapsible sidebar category &#x27;Plugins&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/Troubleshooting">Troubleshooting</a><button aria-label="Toggle the collapsible sidebar category &#x27;Troubleshooting&#x27;" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_OVgt"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/docs/Config UI"><span itemprop="name">Config UI</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Azure DevOps</span><meta itemprop="position" content="2"></li></ul></nav><span class="theme-doc-version-badge badge badge--secondary">Version: Next</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Azure DevOps</h1></header><p>Visit Config UI at: <code>http://localhost:4000</code>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="step-1---add-data-connections">Step 1 - Add Data Connections<a class="hash-link" href="#step-1---add-data-connections" title="Direct link to heading"></a></h2><p>On the Connections page, you can select GitHub and create a new connection or it.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-11---authentication">Step 1.1 - Authentication<a class="hash-link" href="#step-11---authentication" title="Direct link to heading"></a></h3><p><img loading="lazy" alt="azuredevops-create-a-connection" src="/assets/images/azuredevops-create-a-connection-3a4ecfc90ce12c5dacdb74f3f95df19f.png" width="3056" height="1746" class="img_ev3q"></p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="connection-name">Connection Name<a class="hash-link" href="#connection-name" title="Direct link to heading"></a></h4><p>Give your connection a unique name to help you identify it in the future.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="token">Token<a class="hash-link" href="#token" title="Direct link to heading"></a></h4><p>Paste your Azure DevOps personal access token (PAT) here. Check <a href="https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&amp;tabs=Windows#create-a-pat" target="_blank" rel="noopener noreferrer">Azure&#x27;s official doc</a> on how to create a PAT.
Make sure that the Organization field is set to &quot;All accessible organizations&quot; when creating the PAT.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="test-and-save-connection">Test and Save Connection<a class="hash-link" href="#test-and-save-connection" title="Direct link to heading"></a></h4><p>Click <code>Test Connection</code>, if the connection is successful, click <code>Save Connection</code> to add the connection.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-12---add-data-scopes">Step 1.2 - Add Data Scopes<a class="hash-link" href="#step-12---add-data-scopes" title="Direct link to heading"></a></h3><p><img loading="lazy" alt="azuredevops-set-data-scope" src="/assets/images/azuredevops-set-data-scope-30fe830036ca8fdccf9f3b7aa7aa89c0.png" width="3044" height="1772" class="img_ev3q"></p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="select-repositories">Select repositories<a class="hash-link" href="#select-repositories" title="Direct link to heading"></a></h4><p>Select the repositories you want to collect data from.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="data-entities">Data Entities<a class="hash-link" href="#data-entities" title="Direct link to heading"></a></h4><p>Azure DevOps supports the following data entities.</p><ul><li>CI/CD: builds and jobs.</li><li>Source Code Management: repositories and their commits.</li><li>Code Review: pull requests and their commits.</li></ul><h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-13---add-scope-config-optional">Step 1.3 - Add Scope Config (Optional)<a class="hash-link" href="#step-13---add-scope-config-optional" title="Direct link to heading"></a></h3><p><img loading="lazy" alt="azuredevops-add-scope config" src="/assets/images/azuredevops-add-scope-config-01facab03b3978cb074757de07543d46.png" width="1405" height="486" class="img_ev3q"></p><p>Scope config contains two parts: </p><ul><li>The entities of which domain you wish to collect: Usually, you don&#x27;t have to modify this part. However, if you don&#x27;t want to collect certain Azure DevOps entities, you can unselect some entities to accelerate the collection speed.<ul><li>Source Code Management: Azure repos, refs, commits, etc.</li><li>Code Review: Azure PRs, PR comments and reviews, etc.</li><li>CI/CD: Azure pipelines, jobs, etc.</li><li>Cross Domain: Azure accounts, etc.</li></ul></li><li>The transformations on the Azure DevOps data you are going to collect. </li></ul><p><img loading="lazy" alt="azuredevops-set-transformation" src="/assets/images/azuredevops-set-transformation-25ff252773e9b8b0f189be3d2ed6e87a.png" width="1120" height="757" class="img_ev3q"></p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="cicd">CI/CD<a class="hash-link" href="#cicd" title="Direct link to heading"></a></h4><p>To effectively measure <a href="/docs/DORA">DORA metrics</a> through Azure DevOps, it is necessary to define the concept of a &#x27;deployment&#x27;. DevLake considers an Azure Pipeline Run (see the blue rectangle) as a DevLake deployment using specific conditions expressed through regular expressions (regex):</p><ul><li>Deployment: The provided regex should match either the name of the Azure pipeline (see the red rectangle) that the pipeline run belongs to or any of the job display names (see the yellow rectangle) associated with the pipeline run. This will designate it as a deployment. For example, if the deployment pipeline is named &#x27;build-and-push-image&#x27;, you can input (push-image) as the regex. To ensure case insensitivity, include (?i) before the regex.</li><li>Production: The given regex should match either the pipeline run&#x27;s name or any of its job display names to classify it as a deployment within the production environment. For instance, if the deployment pipeline is named &#x27;build-to-prod&#x27;, you can input (prod) as the regex. To ensure case insensitivity, include (?i) before the regex.</li></ul><p><img loading="lazy" alt="azure-pipeline" src="/assets/images/azuredevops-ui-pipeline-072c4460d8f26170bdadc117debe7e2e.png" width="970" height="352" class="img_ev3q">
<img loading="lazy" alt="azure-job" src="/assets/images/azuredevops-ui-job-1b8b05dd25e00fabac9f1c1464f216f3.png" width="1217" height="864" class="img_ev3q"></p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="additional-settings">Additional Settings<a class="hash-link" href="#additional-settings" title="Direct link to heading"></a></h4><p>The additional settings for transformations are RefDiff options:</p><ul><li>Tags Limit: the number of tags to compare.</li><li>Tags Pattern: Only tags that match the given regex are taken into account.</li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="step-2---collect-data-in-a-project">Step 2 - Collect Data in a Project<a class="hash-link" href="#step-2---collect-data-in-a-project" title="Direct link to heading"></a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-21---create-a-project">Step 2.1 - Create a Project<a class="hash-link" href="#step-21---create-a-project" title="Direct link to heading"></a></h3><p>Collecting Azure DevOps data requires creating a project first. You can visit the Project page from the side menu and create a new project by following the instructions on the user interface.</p><p><img loading="lazy" alt="create-a-project" src="/assets/images/create-a-project-20e220196044bbf9be564773c45c5990.png" width="1624" height="684" class="img_ev3q"></p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-22---add-a-azure-devops-connection">Step 2.2 - Add a Azure DevOps Connection<a class="hash-link" href="#step-22---add-a-azure-devops-connection" title="Direct link to heading"></a></h3><p>You can add a previously configured GitLab connection to the project and select the boards for which you wish to collect the data for.
Please note: if you don&#x27;t see the repositories you are looking for, please check if you have added them to the connection first.</p><p><img loading="lazy" alt="add-a-connection" src="/assets/images/add-a-connection-project-4032e8e9a72cb4a6df81b6ced714205e.png" width="2394" height="624" class="img_ev3q"></p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-23---set-the-sync-policy">Step 2.3 - Set the Sync Policy<a class="hash-link" href="#step-23---set-the-sync-policy" title="Direct link to heading"></a></h3><p>There are three settings for Sync Policy:</p><ul><li>Data Time Range: You can select the time range of the data you wish to collect. The default is set to the past six months.</li><li>Sync Frequency: You can choose how often you would like to sync your data in this step by selecting a sync frequency option or entering a cron code to specify your prefered schedule.</li><li>Skip Failed Tasks: sometime a few tasks may fail in a long pipeline; you can choose to skip them to avoid spending more time in running the pipeline all over again.</li></ul><p><img loading="lazy" alt="sync-policy" src="/assets/images/sync-policy-2ac941b2918fc873626375dfe4cbf5f5.png" width="2428" height="336" class="img_ev3q"></p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-24---start-data-collection">Step 2.4 - Start Data Collection<a class="hash-link" href="#step-24---start-data-collection" title="Direct link to heading"></a></h3><p>Click on &quot;Collect Data&quot; to start collecting data for the whole project. You can check the status in the Status tab on the same page.
<img loading="lazy" alt="collect-data" src="/assets/images/collect-data-5919e2e6ddad525bca4fbcb46e672aff.png" width="2410" height="664" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="troubleshooting">Troubleshooting<a class="hash-link" href="#troubleshooting" title="Direct link to heading"></a></h2><p>If you run into any problem, please check the <a href="/docs/Troubleshooting/Configuration">Troubleshooting</a> or <a href="https://github.com/apache/incubator-devlake/issues" target="_blank" rel="noopener noreferrer">create an issue</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/devlake-website/edit/main/docs/Configuration/AzureDevOps.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/Configuration/HowToOrganizeDevlakeProjects"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">How to Organize DevLake Projects</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/Configuration/BitBucket"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Bitbucket Cloud</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#step-1---add-data-connections" class="table-of-contents__link toc-highlight">Step 1 - Add Data Connections</a><ul><li><a href="#step-11---authentication" class="table-of-contents__link toc-highlight">Step 1.1 - Authentication</a></li><li><a href="#step-12---add-data-scopes" class="table-of-contents__link toc-highlight">Step 1.2 - Add Data Scopes</a></li><li><a href="#step-13---add-scope-config-optional" class="table-of-contents__link toc-highlight">Step 1.3 - Add Scope Config (Optional)</a></li></ul></li><li><a href="#step-2---collect-data-in-a-project" class="table-of-contents__link toc-highlight">Step 2 - Collect Data in a Project</a><ul><li><a href="#step-21---create-a-project" class="table-of-contents__link toc-highlight">Step 2.1 - Create a Project</a></li><li><a href="#step-22---add-a-azure-devops-connection" class="table-of-contents__link toc-highlight">Step 2.2 - Add a Azure DevOps Connection</a></li><li><a href="#step-23---set-the-sync-policy" class="table-of-contents__link toc-highlight">Step 2.3 - Set the Sync Policy</a></li><li><a href="#step-24---start-data-collection" class="table-of-contents__link toc-highlight">Step 2.4 - Start Data Collection</a></li></ul></li><li><a href="#troubleshooting" class="table-of-contents__link toc-highlight">Troubleshooting</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/GettingStarted">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/DataModels/DevLakeDomainLayerSchema">Data Models</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/Metrics">Engineering Metrics</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://join.slack.com/t/devlake-io/shared_invite/zt-1lkgbdmys-AU2azidzO1u~mtjlg9my7A" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack</a></li><li class="footer__item"><a href="https://github.com/apache/incubator-devlake/issues" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub Issue Tracker</a></li><li class="footer__item"><a href="https://github.com/apache/devlake-website/issues" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub Issue Tracker For Docs</a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/apache/devlake" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub</a></li><li class="footer__item"><a href="https://twitter.com/ApacheDevLake" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter</a></li><li class="footer__item"><a class="footer__link-item" href="/community/trademark">Trademark Guidelines</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">
<div style="margin-top: 20px">
<a href="https://incubator.apache.org/" target="_blank"><img style="height:40px; margin-bottom: 10px; margin-top: 10px" alt="Apache Software Foundation" src="/img/apache-incubator.svg"></a>
<p style="text-align:left; font-weight: 300; font-size: 0.8em;">Apache DevLake is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
<p style="text-align:left; font-weight: 300; font-size: 0.8em;">Copyright ©2026 Apache DevLake, DevLake, Apache, the Apache feather logo and the Apache DevLake project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
</div>
</div></div></div></footer></div>
<script src="/assets/js/runtime~main.566cb87a.js"></script>
<script src="/assets/js/main.c5c21f25.js"></script>
</body>
</html>