As an alternative to the Black Duck Security Scan Action, the Bridge CLI can be downloaded and directly executed in a GitHub workflow. It has all the functionality of the plugin, but requires an additional step to download the Bridge CLI.
To use the CLI directly from a pipeline, the correct Bridge CLI Coverity parameters must be passed directly inside the workflow. Furthermore, appropriate access credentials are required to download and use it. Consult the overview page for further details and instructions on use.
Note: The Black Duck Security Scan Action (recommended) can be used for workflows instead of Bridge CLI by following the quickstart guide. The plugin has equivalent functionality and handles the Bridge CLI download and execution automatically.
To discover more about the Black Duck Security Scan Action and what it can do, take a look at the overview page.
Prerequisites
-
The following reading is recommended before starting this quickstart:
- A GitHub Personal Access Token or the default
GITHUB_TOKENis required to allow the pipeline to inject Pull Request review comments. - For security reasons, it is advisable to use GitHub Secrets and Variables to store credentials and access tokens.
- Add the following variables and secrets at the repository or organization level ()
Variable Type Description Example COVERITY_URLVariable Coverity Connect Server URL https://coverity.example.com COVERITY_USERSecret Coverity Connect Username REPLACE_WITH_YOUR_USERNAMECOVERITY_PASSPHRASESecret Coverity Connect Password or Access Token REPLACE_WITH_YOUR_PASSWORDBRIDGECLI_LINUX64Variable Bridge CLI Download URL https://repo.blackduck.com/bds-integrations-release/com/blackduck/integration/bridge/binaries/bridge-cli-bundle/latest/bridge-cli-bundle-linux64.zip -
The following Bridge CLI parameters are required to inject Pull Request comments:
Parameter Description Value coverity.prcomment.enabledEnable PR comments truegithub.repository.pull.numberID of PR with source code to scan ${{ github.event.number }}
Coverity requires additional configuration for compiled languages. For languages that use a build system (such as C++, Java, etc.), Coverity must be configured with build and clean commands to capture and analyze the build.
- The instructions below use the Bridge
COVERITY_BUILD_COMMANDandCOVERITY_CLEAN_COMMANDenvironment variables to specify the build and clean commands. - See Using Bridge With Compiled Languages and the Coverity section in Client scan tool parameters for an overview of the various methods available for configuring Bridge CLI to integrate with Coverity to capture and analyze the build for compiled languages.
Instructions
Follow the steps below to configure a workflow that invokes Bridge CLI for full scans and Pull Request scans:
Troubleshooting and support
If a pipeline error is encountered similar to the example below, then the
BRIDGE_COVERITY_LOCAL environment variable should be uncommented in the quickstart code example.Attention: ERROR: Failed to retrieve tool information details: Fetch tool information: received unexpected response status code '500' from Connect API
In this scenario either scan services are not enabled or a Coverity version prior to 2022.3 is deployed. The default behavior is that the pipeline uses the Coverity thin client to upload artifacts, with the analysis performed at the server. Setting the BRIDGE_COVERITY_LOCAL environment variable to true enables the full analysis at the client. Subsequently, the scan and analysis will be performed locally by the workflow. For further details relating to the different Coverity deployment models supported, please refer to Coverity Deployment Architecture.