> For the complete documentation index, see [llms.txt](https://docs.elimity.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.elimity.com/azure-devops/v2.0.0/release-notes.md).

# Release notes

Releases of the Azure Devops gateway, newest first. Every release has its own version in the dropdown at the top. To get notified of new releases, see [Subscribe to releases](/azure-devops/v2.0.0/subscribe.md).

{% updates format="full" %}
{% update date="2026-10-29" %}

## v2.0.0

Container image tag `v2.0.0`.
{% endupdate %}
{% endupdates %}

<details>

<summary>New functionality</summary>

**A hard limit on every request**

The gateway imports an organization in many requests. The new `requestTimeoutSeconds` configuration value is a hard limit on each of them: when it is reached, what finished is imported and the rest is handed on to the next request. A project or repository only sends its data once it is complete, so nothing is imported half. See the [step-by-step deployment guide](/azure-devops/v2.0.0/step-by-step-deployment-guide.md).

**Parallel imports**

The optional `parallel` configuration value splits the projects and repositories over several chains that Elimity Insights works on at the same time. See [How imports are split](https://docs.elimity.com/technical-guides/gateways-and-import-agents/how-imports-are-split).

**Azure DevOps rate limiting in the gateway's log**

When Azure DevOps delays the gateway's requests, the gateway's container log sums it up in `Azure DevOps rate limiting: ...` lines, at most every 30 seconds.

</details>

<details>

<summary>Bug fixes &#x26; improvements</summary>

**Requests no longer run past their limit**

In v1.0.0 a request stopped starting new projects and repositories after two minutes, but waited for the ones it had started. When Azure DevOps throttled, that could take several minutes more. Requests now stop at `requestTimeoutSeconds`.

**No new calls after the limit**

When a request reaches its limit, its calls to Azure DevOps that have not been sent yet are dropped; only calls already sent still finish. Before, they kept going out for minutes after the request had ended, using up the service principal's rate limit that the next request needs.

</details>

<details>

<summary>Deployment changes</summary>

**New required configuration value `requestTimeoutSeconds`**

Add `requestTimeoutSeconds` (type `Text`) to the source. It must be at least `120`; we recommend `600`. Without it, the import fails at the start with `Invalid configuration: requestTimeoutSeconds is required`.

**Container image**

Use the container image tag `v2.0.0`. See [Installation](/azure-devops/v2.0.0/installation.md).

**Upgrading from v1.0.0**

1. Add the configuration value `requestTimeoutSeconds` with value `600` to the source.
2. Switch the gateway to image tag `v2.0.0`.

A source with `parallel` already set keeps working as before.

</details>

{% updates format="full" %}
{% update date="2026-10-28" %}

## v1.0.0

Container image tag `v1.0.0`, the first versioned release. Its documentation is under v1.0.0 in the dropdown at the top.
{% endupdate %}
{% endupdates %}

<details>

<summary>New functionality</summary>

**Import of users, groups, projects and repositories**

The gateway imports the users, organization groups and project groups of an Azure DevOps organization, together with its projects and repositories and the group memberships between them.

**Import of user specific permissions**

For every project and repository, the gateway imports the permissions that are granted to each user, directly or through group memberships.

**License tier per user**

Users get an `account_license_type` attribute with their Azure DevOps license tier. This requires the optional Member Entitlement Management (read) scope; without it, the import still succeeds without this attribute.

**Include or exclude specific projects**

The `includedProjects` and `excludedProjects` configuration values limit the import to specific projects.

</details>

<details>

<summary>Bug fixes &#x26; improvements</summary>

*None*

</details>

<details>

<summary>Deployment changes</summary>

**SDK version 2**

The gateway requires SDK version 2. Set 'SDK version' to `2` in the custom gateway configuration of the source.

**Container image**

Use the container image tag `v1.0.0`.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.elimity.com/azure-devops/v2.0.0/release-notes.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
