Overview

note

This integration is not currently supported for customers on a WhiteSource On-Premises instance.

This integration is not currently supported for customers on a WhiteSource On-Premises instance.

The Azure DevOps Pipelines native integration is enabled via the WhiteSource for Azure DevOps extension. It enables you to do the following:

NOTES:

Support for Languages and Package Managers 

The Azure DevOps integration supports programming languages and package managers that are supported today by the Unified Agent.

Note the following current limitations:

Prerequisites

Ensure the following:

Installing the Extension

To install the extension, do as follows:

  1. Click here. The WhiteSource for Azure DevOps page is displayed.

  2. Click Get and follow the installation procedure.

Activating the Extension

To activate the extension, do as follows:

note

To re-activate the extension using a different WhiteSource account (activation key), uninstall the extension and then follow the instructions below.

To re-activate the extension using a different WhiteSource account (activation key), uninstall the extension and then follow the instructions below.

  1. After installing the extension, navigate to Organization Settings > Extensions > WhiteSource within your Azure DevOps organization.

  2. An activation form for connecting to your WhiteSource account is displayed. Enter the following details:

  3. Click Connect Account. Your extension is now connected to your WhiteSource account.

Configuring Organizational Settings

After completing the activation process, you can define the WhiteSource mapping resolution; whether to map each Azure DevOps pipeline to a WhiteSource project (which is the default behavior) or to map each run/build of the pipeline to a WhiteSource project. This setting will be applied to all of your organization’s pipelines.

To define the WhiteSource mapping resolution, do as follows:

  1. Navigate to Organization Settings > Extensions > WhiteSource.

  2. Select the Map Azure DevOps Pipelines to WhiteSource Projects checkbox if you want each Azure DevOps pipeline to be mapped to a WhiteSource project (by default, it is selected).
    -Or-
    Clear the checkbox to map only each run/build of the pipeline to a WhiteSource project.

  3. Click Save.

Configuring Project Settings

The default WhiteSource Product that will be associated with your specific Azure DevOps Project, is AZDO_<PROJECT_NAME>. To change the mapped WhiteSource Product, there are two available options:

Defining a New WhiteSource Product

To define a new WhiteSource product to be created and associated with your Azure DevOps project, do as follows:

  1. Ensure that you followed the procedures in Activating the Extension.

  2. Navigate to your Azure DevOps Project.

  3. Navigate to Project Settings > Extensions > WhiteSource of the specific project.

  4. Enter the desired WhiteSource product name in the Product name field. As you enter the name, it will simultaneously appear under the input field; click that name below.

  5. In the Add a new Product dialog box, click Add.

  6. Under the Product name box click Save.

The new product will be created in the WhiteSource application. Any build that will run in the specific Azure DevOps project will have results appear in the WhiteSource application under the provided product name.

Selecting a Product From a List of Existing WhiteSource Products

To select a product from a list of existing WhiteSource products, do as follows:

  1. Ensure that you followed the procedures in Activating the Extension.

  2. Navigate to your Azure DevOps Project.

  3. Navigate to Project Settings > Extensions > WhiteSource.

  4. Click the input field of the Product name to display the list of the existing WhiteSource products.

  5. Select a product from the list. Once selected, it should be displayed in the input field. Click Save.

Any build that will run in the specific Azure DevOps project will have results appear in the WhiteSource application under the provided existing WhiteSource product.

note

Existing WhiteSource scans that were triggered before changing the WhiteSource product name will remain under the previously-set WhiteSource product.

Existing WhiteSource scans that were triggered before changing the WhiteSource product name will remain under the previously-set WhiteSource product.

Adding a WhiteSource Build Task to Your Pipeline

After completing the relevant settings, all is set for adding a WhiteSource build task to the pipeline. Do as follows:

  1. Go to the relevant Azure DevOps project for which you want WhiteSource to run.

  2. Inside your Azure DevOps project, from the sidebar, click Pipelines. The Pipelines page is displayed.

  3. Click the relevant pipeline. The specific pipeline page is displayed.

  4. Click Edit. Do one of the following procedures:

This activates the WhiteSource integration on your build pipeline.

NOTE: Adding a pre-step build task is not necessary in order for WhiteSource to successfully scan the build repository. WhiteSource by default runs a pre-step command as part of the WhiteSource task.

Adding a Build Task to a YAML Pipeline

  1. In the pipeline edit page, from the right side, click Show assistant. The Tasks sidebar is displayed.

  2. In the search bar, enter whitesource. The WhiteSource task is displayed.

  3. Click the WhiteSource task.

  4. From the bottom right corner, click Add. The WhiteSource task is added to the pipeline.

    - task: WhiteSource@21
  5. (Optional) To specify the name of the WhiteSource project to be created, add the following to the WhiteSource task. In the following example, replace New_Project_Name with the name you want to give your WhiteSource project:
    NOTE: When the Overwrite projects with latest build data checkbox from the Organization Settings > Extensions >WhiteSource is selected, you will be unable to change the project name after the first build run.

    - task: WhiteSource@21
      inputs:
        cwd: '$(System.DefaultWorkingDirectory)'
        projectName: 'New_Project_Name'
  6. (Optional) To specify custom Unified Agent Configuration parameters, add all parameters in the WhiteSource Configuration field (ensure each parameter along with its value are provided on a separate line). In the following example, under configuration, provide all relevant parameters.
    NOTE: The parameters used here overwrite the default configuration parameters. Configuration parameters that were not provided will use the default values as described here.

    - task: WhiteSource@21
      inputs:
        cwd: '$(System.DefaultWorkingDirectory)'
        configuration: |
         npm.resolveDependencies=true
         maven.resolveDependencies=true
  7. Click Save & queue.

NOTE: The WhiteSource task can be moved to other locations within the steps section, depending on your preferences.

Adding a Build Task to a Classic Pipeline

  1. To add a task to the Agent Job, click the plus (“+”) sign next to the agent job section. The Add Tasks section is displayed.

  2. In the search bar, enter whitesource. The WhiteSource task is displayed.

  3. Click the WhiteSource tab, and then click Add. The WhiteSource task is added to the pipeline.

  4. (Optional) To specify the name of the WhiteSource project to be created, enter the name in the Project name field.
    NOTE: When the Overwrite projects with latest build data checkbox from Organization Settings > Extensions > WhiteSource is selected, you will be unable to change the project name after the first build run.

  5. (Optional) To specify custom Unified Agent Configuration parameters, add all parameters in the WhiteSource Configuration field (ensure each parameter name along with its value are provided on a separate line).
    NOTE: The parameters used here overwrite the default configuration parameters. Configuration parameters that were not provided will use the default values as described here.

  6. Click Save & queue.

NOTE: The WhiteSource task can be moved to other locations within the steps section, depending on your preferences.

Azure DevOps Integration Default Settings

The default settings of the Azure DevOps integration are different from the Unified Agent Configuration Parameters and are derived from the Unified Agent Configuration Parameters for Native Integrations except for the following parameters:

Includes/Excludes Glob Patterns

Viewing the WhiteSource Report

The WhiteSource report comprises of four tabs: Inventory, Outdated Libraries, Security Vulnerabilities, and License Risks. You can view the WhiteSource report by following these steps:

  1. Ensure that you followed the procedures in Activating the Extension and Adding a WhiteSource Build Task to Your Pipeline.

  2. Go to the specific build’s results page for your project, and click the WhiteSource tab. The WhiteSource open-source Risk Report is displayed.

Understanding the Report

Security Summary

A summary of detected open source vulnerabilities and the libraries that contain them.

Name

Description

Vulnerability Risk

The overall risk level for your inventory. Can be High, Medium, Low, No Risk.

Vulnerable Libraries

Displays the total number of vulnerable libraries.

Severity Distribution

Provides a breakdown of the vulnerabilities according to their severity level.

Inventory Tab

An inventory of all the detected open source libraries.

Name

Description

Library

The name of the open-source library linking to the Library Details page in the WhiteSource application.

Licenses

Lists licenses detected for each library, and links to their license descriptions.

Outdated Libraries

Libraries that have not been updated to their newest available versions.

Name

Description

Library

The name of the outdated library, linking to the Library Details page in the WhiteSource application.

Your version

The version number of the outdated library.

Newest stable version

The library’s most up-to-date version number.

Security Vulnerabilities

A table listing all security vulnerabilities.

Name

Description

Severity

The severity of the vulnerability. Consists of:

  • Severity level- H (high), M (medium), L (low).

  • CVSS score

Vulnerability

The vulnerability identifier linking to the WhiteSource vulnerability lab, containing more information.

Date

The vulnerability publish date.

Library

The name of the open-source library containing the vulnerability, linking to the Library Details page in the WhiteSource application.

Top Fix 

The top-rated remediation advice that WhiteSource recommends for each vulnerability. A condensed description of the recommended course of action is given, followed by a link to a broader description.

License Risks

The License Risk Table displays a summary of open-source components’ license types and their associated risk including the number of occurrences.

Name

Description

License

The license detected as part of the inventory linking to its license description.

Risk

The risk associated with the license. Values are H (high), M (medium), L (low). In case of unknown risk, no risk is displayed.

Occurrences

In how many libraries this license occurs.

Additionally, the following charts are displayed: