> For the complete documentation index, see [llms.txt](https://docs.sealsecurity.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sealsecurity.io/integrations/internal-scanners/black-duck.md).

# Black Duck integration

<figure><img src="/files/rwGwFadEWkHhHd21JIHW" alt="Black Duck" width="280"><figcaption></figcaption></figure>

The Seal CLI calls the Black Duck API after every `seal fix` run and updates the corresponding findings on the targeted Black Duck project version.

## Before you start

* A Black Duck access token with permissions to update vulnerability findings on the target project.
* The Black Duck project name and the project version name. Black Duck scopes findings by project version, so both are required.
* The Black Duck server URL (your tenant's hosted address).

## Configuration

Set these in your CI environment:

```bash
SEAL_BLACKDUCK_URL=<black duck server url>
SEAL_BLACKDUCK_TOKEN=<black duck access token>
SEAL_BLACKDUCK_PROJECT=<black duck project name>
SEAL_BLACKDUCK_PROJECT_VERSION_NAME=<black duck project version name>
```

Or in `.seal-config.yml` at the project root:

```yaml
blackduck:
  url: <black duck server url>
  token: <black duck access token>
  project-name: <black duck project name>
  project-version-name: <black duck project version name>
```

A common pattern for the project version name is to match it to the Git branch being scanned. Whatever scheme you use in Black Duck, pass that value verbatim.

## Verify

After a `seal fix` run with the integration configured, open the targeted Black Duck project version. Vulnerabilities Seal sealed should reflect a remediated state with a Seal-attributed reason.

## Related

* [How CLI-driven sync works](/integrations/internal-scanners/how-cli-sync-works.md)
