Skip to main content

Azure DevOps Integration

Authentication

Supported authentication methods

Personal token

To proceed with this authentication type you need to obtain a personal access token from Azure DevOps. Steps below will instruct you how to do that.

Sign in to your Azure DevOps organization (https://dev.azure.com/{yourorganization}).

Click the user settings icon in the top right corner, then select Personal access tokens.

Open menu

Click + New Token to create a personal access token.

Add new token

Name your token, select the organization, and set an expiration period.

Token lifetime

Under Scopes, select Show all scopes and enable Project and Team (Read) and Work Items (Read & write).

Project and Team scope

Work Items scope

Click Create. Make sure to copy the token — you won't be able to see it again.

Now, when you've obtained a token, let's configure the integration in Bugsee.

Provide the organization URL (e.g. https://dev.azure.com/{yourorganization}) and paste the generated token.

Configuration

There are no specific configuration steps for Azure DevOps. Refer to configuration section for description about generic steps.

Custom recipes

Bugsee can accommodate all the customizations required for your Azure DevOps instance with the help of custom recipes. This section provides a few examples of using custom recipes with Azure DevOps. For basic introduction, refer to custom recipe documentation.

Setting tags field

By default Bugsee creates and updates Azure DevOps bugs with Bugsee issue labels as Azure DevOps tags. But labels list can be overridden inside your custom recipe. For example you can add some new label (Azure DevOps tag) to existing ones:

function create(context) {
// ....

return {
// ...
labels: [...issue.labels, "My awesome tag"]
};
}

function update(context, changes) {
const result = {};
// ...

if (changes.labels) {
result.labels = [...changes.labels.to, "My awesome tag"];
}

return {
issue: {
custom: {}
},
changes: result
};
}

Setting custom fields

Custom fields for Azure DevOps must be set as an array of objects ({ op, path, value }) inside the "fields" attribute, like shown below:

function create(context) {
// ....

return {
// ...
custom: {
fields: [
{
op: 'add',
path: '/fields/System.Reason',
value: 'New task'
}
]
}
};
}