Endor Labs supports Azure Boards on Azure DevOps Cloud only.
Prerequisites
Ensure the following prerequisites are in place before you set up the Azure Boards integration.- You need a personal access token (PAT) with the required scopes. You can generate a new PAT or reuse the PAT from an existing Azure DevOps SCM integration if you add the required scope to it.
- For each Azure DevOps project you configure, choose a parent work item type that includes a Description field. The default
Epic,Issue, andTasktypes include this field, but a custom work item type might not. - Know the name of each Azure DevOps project you want to map to a repository in Endor Labs.
Generate a personal access token
Generate a PAT in Azure DevOps to authenticate the notification target.- Sign in to Azure DevOps and select User settings > Personal access tokens.
- Click New Token.
- Enter a name for the token and select the organization it applies to.
- Under Scopes, select Custom defined, then grant the following:
- Project and Team: Read
- Work Items: Read & write
- Click Create and copy the token. You can’t view the token again after you close this page.
Add an Azure Boards integration using the Endor Labs user interface
You enter the organization details, select the Azure DevOps projects to connect, and then set the work item types for each project.1
Open the ADO Boards integrations
To create a new Azure Boards integration:
- Select User menu > Integrations from the left sidebar.
- Under Notifications, click Manage for ADO Boards. The list shows each existing integration with its Name, Organization, Projects, and Policies.
- Click Add Notification Integration.
2
Enter the organization details
Name the integration and connect your Azure DevOps organization.
- In Name of ADO board, enter a name for the integration. The name can be up to 255 characters.
-
Choose how Endor Labs connects to your Azure DevOps organization.
- To reuse an Azure DevOps SCM integration that’s already configured in this namespace, toggle I want to add the board via an already integrated Azure DevOps SCM and select the organization in Organization URL.
- To connect an organization directly, enter the organization URL in Organization URL. The URL must be in the form
https://dev.azure.com/<your-organization>orhttps://<your-organization>.visualstudio.com. You can append a project name to either form.
-
Optionally, enter your personal access token.
- When you reuse an Azure DevOps SCM integration, the token is optional and labeled Enter a different PAT from SCM integration (optional). Leave it empty to use the token from that SCM integration.
- When you connect an organization directly, enter the token in Enter a PAT. The token is required and can be up to 256 characters.
- Click Next. Endor Labs uses the credentials to load the organization’s Azure DevOps projects. If the lookup fails, you stay on this step and Endor Labs shows the reason.
3
Select projects
Endor Labs lists the Azure DevOps projects in the organization you connected. Select the projects where Endor Labs creates work items.
- In Search projects, enter a project name.
- Select each Azure DevOps project you want to connect. Endor Labs shows how many of the available projects you selected.
- Click Next.
4
Set up work item types
Endor Labs lists the projects you selected with their ADO Project name, Primary work item, Child work item, and Tags.
- Click the vertical three dots for a project and select Edit work items.
- In Primary work item type, choose the work item type to create for the project.
- In Child work item type, choose the work item type to create under the parent.
- Optionally, enter one or more values in Tags to apply to every work item created for this project.
- Click Update.
- Repeat steps 1 through 5 for each project you selected.
- Click Save Integration.
Manage an Azure Boards integration
You can edit an existing Azure Boards integration to update its configuration, or delete it when you no longer need it.Edit an integration
Edit an integration to change its name, token, selected projects, or work item setup. Organization URL and the credential source are locked, so create a new integration to point at a different organization.- Select User menu > Integrations from the left sidebar.
- Under Notifications, click Manage for ADO Boards.
- Click the vertical three dots for the integration and select Edit Notification Integration.
- Change the name, the token, the selected projects, or the work item setup.
- Click Save Integration.
- Endor Labs doesn’t display the stored token. If you enter a new token, it replaces the stored one and must have access to every project you configured.
- Projects you already configured are selected and marked Configured. Clearing one removes its work item setup.
- Projects that Azure DevOps no longer returns are marked No longer supported. You can’t select them, and Endor Labs drops them when you save.
- A warning names any work item type that no longer exists in Azure DevOps. That project counts as unconfigured until you choose another type.
Delete an integration
Delete an integration to stop Endor Labs from creating work items through it. Existing work items in Azure DevOps remain.- Select User menu > Integrations from the left sidebar.
- Under Notifications, click Manage for ADO Boards.
- Click the vertical three dots for the integration and select Delete Notification Integration.
Create an Azure Boards notification target
An Azure Boards notification target usesACTION_TYPE_ADO_BOARDS. Every target requires at least one project mapping that specifies the parent work item type and, optionally, a child work item type and tags.
A target authenticates with Azure DevOps in one of two ways:
- Provide credentials directly: You supply the organization URL and a PAT in
user_config, and the target stores them. Use this if you don’t have an Azure DevOps installation in Endor Labs, or if you want a dedicated PAT for this target. - Reuse an Azure DevOps installation: You supply the UUID of an existing installation in
installation_uuid, and Endor Labs resolves the organization URL and PAT from it. The PAT on that installation must include the Work Items scope.
ado_boards_config fields.
Provide credentials directly
Create the target with the organization URL and PAT inuser_config.
- endorctl
- curl
Reuse an Azure DevOps installation
Create the target with the UUID of an existing installation in place ofuser_config.
-
Find the installation UUID.
- endorctl
- curl
-
Create the notification target with the installation UUID.
- endorctl
- curl
Manage Azure Boards notification targets
You can list the existing Azure Boards notification targets, update one to change its configuration, or delete one when you no longer need it.List notification targets
List every Azure Boards notification target in a namespace.- endorctl
- curl
Update a notification target
Updates use a field mask to specify which fields to change. Endor Labs changes only the fields listed in the mask. For example, to rotate the PAT on an existing target without changing its projects:- endorctl
- curl
To switch a target from
user_config to installation_uuid or back, the organization URL of the new credential source must match the organization URL already stored on the target. If the URLs differ, the update fails and you must create a new notification target instead.Delete a notification target
Delete a target by its UUID.- endorctl
- curl
Associate a policy with Azure Boards
Endor Labs doesn’t create any work items until a policy references your Azure Boards configuration. Create an action policy or remediation policy that references your Azure Boards configuration. While creating the policy, configure the following settings:- Select Choose an Action as Send Notification.
- From SELECT NOTIFICATION TARGETS, choose the Azure Boards notification target that you created.
- None (Notify for each Finding) sends a separate notification for each finding.
- Project sends a single notification for all findings in a project.
- Dependency sends a notification for every dependency.
- Dependency per Package Version sends a notification for every unique combination of dependency and package version.