Overview
The @fortify/github-action@v3 GitHub Action provides seamless integration of OpenText Application Security (Fortify Software Security Center)
for automated Application Security Testing (AST) into your CI/CD
workflows. The action leverages the fortify/github-action/setup action to set up
fcli, then executes the fcli ci action to run the requested scans and
related tasks, providing a unified yet customizable experience across your AST scan workflows
on GitHub and other CI systems.
Quick Start Example
Minimal configuration for running OpenText Fortify AST scans.
name: OpenText Application Security (Fortify Software Security Center) Scan
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
fortify:
runs-on: ubuntu-latest
# permissions: # When overriding default permissions, following are required:
# contents: read # Required for checkout action
# security-events: write # Required for publishing security reports to GitHub Security tab
# pull-requests: write # Required if DO_PR_COMMENT is set to true
steps:
- uses: actions/checkout@v4 # Check out source code
- uses: actions/setup-<build-tool>@vX # Set up build tool(s) required to build your project
- uses: fortify/github-action@v3 # Run Fortify scans
env:
SSC_URL: $
SSC_TOKEN: $
SC_SAST_TOKEN: $
# SSC_APPVERSION: MyApp:main # Optional: defaults to repo:branch
Tips & Recommendations
Centralized Configuration Management
For enterprise environments with multiple repositories, consider creating reusable workflows or composite actions to wrap the Fortify integration. This approach provides:
-
Version stability: Pin specific Fortify action and fcli versions (e.g.,
FCLI_BOOTSTRAP_VERSION: v3.15.0) across all pipelines -
Consistent configuration: Centrally manage common settings like tool versions and scan parameters
-
Controlled upgrades: Test new versions centrally before rolling out to all repositories
Example reusable workflow structure:
# .github/workflows/fortify-scan.yml (in your organization's shared workflow repository)
name: Fortify Scan Reusable
on:
workflow_call:
inputs:
ssc-appversion:
description: 'Optional SSC application version, defaults to <repo>:<branch>'
required: false
type: string
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: fortify/github-action@v3.0.0 # Centrally managed version
env:
SSC_URL: $
SSC_TOKEN: $
SC_SAST_TOKEN: $
SSC_APPVERSION: $
FCLI_BOOTSTRAP_VERSION: v3.15.0 # Centrally managed version
Air-Gapped Environments
For air-gapped or restricted network environments, host custom tool definitions and tool bundles in an internal SCM repository or artifact registry. Configure the integration to use these internal resources:
-
Set
TOOL_DEFINITIONSto point to your internally hosted tool definitions file -
Set
FCLI_BOOTSTRAP_URLto download fcli from your internal mirror
This ensures all required tools are accessible without external internet access.
Configuration
Configuration is accomplished through action inputs and environment variables set in your CI workflow file. The following sections document all available configuration options organized by their purpose.
Action Inputs
The following action inputs are available to control debug logging behavior:
| Input | Description |
|---|---|
|
Whether to generate and collect debug logs; note that these may contain sensitive data like access tokens or credentials. Automatically enabled when workflow is re-run with "Enable debug logging" checked. Allowed values: |
|
Name for the debug artifacts archive. Default value: |
|
Number of days to retain debug artifacts. Default value: |
Setup & Bootstrap
The environment variables in this section allow you to customize bootstrapping behavior of fcli and supporting tools like ScanCentral Client.
|
Note
|
This GitHub Action requires at least fcli v3.15.0 to function correctly. |
|
Note
|
Environment variables listed in the subsequent sections are for fcli 3.15.0; if your bootstrap settings install another fcli version, please refer to to the fcli ci action documentation for that version. |
Environment Variable |
Description |
FCLI_BOOTSTRAP_VERSION |
By default, the latest fcli v3.x.y release is used for running the fcli-provided ci workflow, allowing you to always benefit from the latest features and fixes. If you prefer stability over automatic updates, you can pin to a specific minor or patch release like v3.15 or v3.15.0 by setting this environment variable to the desired version. Likewise, you can set this variable to an fcli pre-release tag like |
FCLI_BOOTSTRAP_PATH |
Path to a pre-installed fcli executable. When set, fcli bootstrapping will use this binary instead of downloading fcli. |
FCLI_BOOTSTRAP_URL |
By default, fcli is downloaded from the official GitHub releases page. This environment variable allows you to specify a custom URL, for example pointing to an internal mirror in air-gapped environments. In those cases, you’ll likely also want to set |
FCLI_BOOTSTRAP_RSA_SHA256_URL |
Custom URL for the fcli RSA SHA256 signature file. Defaults to |
FCLI_BOOTSTRAP_VERIFY_SIGNATURE |
Set to |
TOOL_DEFINITIONS |
Supporting tools like ScanCentral Client or Debricked CLI are by default downloaded from the URLs defined in the default Fortify tool definitions. For airgapped environments, point this environment variable to an internally hosted custom tool definitions zip file to download these tools from an internal mirror. |
PREINSTALLED |
Set to |
Authentication & Connection
Configure credentials and connection details for OpenText Application Security (Fortify Software Security Center).
Environment Variable |
Description |
SSC_URL |
OpenText Application Security (Fortify Software Security Center) URL, for example |
SSC_TOKEN |
Required when authenticating with an SSC token (recommended). Most actions should work fine with a CIToken. |
SSC_USER |
Required when authenticating with SSC user credentials. |
SC_SAST_TOKEN |
ScanCentral SAST Client Authentication Token for authenticating with ScanCentral SAST Controller. This environment variable is required when running a ScanCentral SAST scan. |
SSC_LOGIN_EXTRA_OPTS |
Extra SSC login options, for example for disabling SSL checks or changing connection time-outs; see |
Application Version Management
Configure OpenText Application Security (Fortify Software Security Center) application version settings, including automatic creation of application versions if they don’t exist.
Environment Variable |
Description |
SSC_APPVERSION |
Fortify SSC application version to use with this action. This should be specified as |
DO_SETUP |
If |
Package Configuration
Configure source code packaging behavior for SAST scans. Control whether to use custom packaging actions, specify pre-built packages, or customize ScanCentral Client usage.
Environment Variable |
Description |
PACKAGE_ACTION |
By default, when running a SAST scan, the fcli package action is used to (optionally) package the source code to be scanned; see next entry for information on how to configure the default package action. If the standard fcli package action doesn’t meet your needs, for example if you want to perform a local translation using Fortify Static Code Analyzer, you can use |
USE_PACKAGE |
These environment variables define packaging behavior. If |
Scan Execution
Configure SAST and Debricked scan execution and waiting behavior for OpenText Application Security (Fortify Software Security Center).
Environment Variable |
Description |
DO_SAST_SCAN |
The fcli |
DO_DEBRICKED_SCAN |
The fcli |
DO_WAIT |
By default, the fcli |
Post-Scan Actions
Configure post-scan tasks including Aviator auditing, application version summaries, policy checks, pull request comments, and vulnerability data exports for OpenText Application Security (Fortify Software Security Center). NOTE: Availability and behavior of post-scan tasks may vary across CI/CD systems and fcli versions.
Environment Variable |
Description |
AVIATOR_URL |
Aviator URL and JWT token to use for Aviator operations (see below). The |
DO_AVIATOR_AUDIT |
If |
DO_APPVERSION_SUMMARY |
If |
DO_CHECK_POLICY |
If |
DO_PR_COMMENT |
(PREVIEW) If |
DO_SAST_EXPORT |
If |
DO_DEBRICKED_EXPORT |
If |
Migrating from fortify/github-action@v2
Migrating from v2.x.y to v3.x.y versions of the fortify/github-action should be fairly
straightforward, as most of the environment-based configuration remains the same. However,
there are some important changes to be aware of:
| fortify/github-action@v2 | fortify/github-action@v3 | Recommended Action |
|---|---|---|
Pinned to specific fcli release |
Uses latest fcli v3.x.y release by default |
Set |
Uses action inputs to specify scan types (e.g., |
Uses environment variables (e.g., |
Update workflow to use environment variables for scan configuration |
Uses |
Uses |
Change |
Supports deprecated |
Only supports |
Rename all |
Uses custom scripts for AST scan workflow |
Uses standardized fcli |
Review environment variables against this documentation; behavior should be similar but variable names may differ slightly |
Resources
-
Marketplace Listing: https://github.com/marketplace/actions/fortify-ast-scan
-
Action Repository: https://www.github.com/fortify/github-action
-
Starter workflow: https://github.com/actions/starter-workflows/blob/main/code-scanning/fortify.yml