Configure code scanning in Harness pipelines using STO security scanners. Helps identify where to inject SAST/SCA scanning steps into existing pipelines, recommends appropriate scanners, and configures them with proper connector references. Use when asked to add code scanning, configure security scans, set up SAST/SCA, integrate vulnerability scanning, or add security checks to a pipeline. Trigger phrases: add code scanner, configure repo scan, set up SAST, add security scan, configure vulnerability scanning, integrate scanner.
74
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Add code scanning steps to existing Harness pipelines using STO security scanners.
Ask the user for the organization, project, and pipeline identifier if not already known. This skill only works with existing pipelines.
Once you have the identifiers, fetch the pipeline definition:
Call MCP tool: harness_get
Parameters:
resource_type: "pipeline"
resource_id: "<pipeline_identifier>"
org_id: "<organization>"
project_id: "<project>"Parse the pipeline YAML from Step 1 to automatically identify the repository connector used in the pipeline.
Look for the connector reference in the pipeline structure:
pipeline.properties.ci.codebase.connectorRefIf no connector is found in the pipeline, inform the user that the pipeline does not have a codebase configuration and cannot proceed with repo scanning.
Parse the pipeline YAML from Step 1 to identify:
Present a structured view to the user showing:
Pipeline: <name>
Stage 1: <stage_name> (type: <stage_type>)
- Step 1: <step_name> (type: <step_type>)
- Step 2: <step_name> (type: <step_type>)
...
Stage 2: <stage_name> (type: <stage_type>)
- Step 1: <step_name> (type: <step_type>)
...Ask the user where they would like to insert the code scanner step:
Present the available SAST scanners supported in Harness STO:
Available SAST Scanners:
Default recommendation: Use Harness Code as the native Harness SAST scanner. It provides integrated security scanning with minimal configuration and seamless integration with Harness STO.
Ask the user which scanner they prefer. If they don't specify, use Harness Code as the default.
Based on the scanner choice and connector from Step 2, generate the appropriate step YAML. The scanner step should be a native Harness STO step, not a Run step.
For Harness Code (default):
- step:
identifier: harness_code_scan
name: Harness Code Scan
type: HarnessSAST
spec:
mode: orchestration
config: sast_sca
target:
type: repository
detection: auto
advanced:
log:
level: infoFor Bandit (Python):
- step:
identifier: bandit_scan
name: Bandit SAST
type: Bandit
spec:
mode: orchestration
config: default
target:
type: repository
detection: auto
advanced:
log:
level: infoFor Semgrep:
- step:
identifier: semgrep_scan
name: Semgrep SAST
type: Semgrep
spec:
mode: orchestration
config: default
target:
type: repository
detection: auto
advanced:
log:
level: infoFor other scanners: Reference references/scanner-types.md for scanner-specific configuration.
Insert the generated scanner step YAML at the location chosen in Step 3. Ensure proper indentation and structure.
Key rules:
cloneCodebase: true setting, the scanner will have access to the source codeexecution.steps array within the chosen stageCreate the updated pipeline YAML with the scanner step inserted.
Update the pipeline with the new scanner step:
Call MCP tool: harness_update
Parameters:
resource_type: "pipeline"
resource_id: "<pipeline_identifier>"
org_id: "<organization>"
project_id: "<project>"
body: { yamlPipeline: "<updated pipeline YAML string>" }Report the results to the user:
## Code Scanner Configured
**Pipeline:** <pipeline_name>
**Scanner:** <scanner_type>
**Location:** Stage "<stage_name>", <position description>
**Connector:** <connector_name>
**Pipeline URL:** https://app.harness.io/ng/account/<account_id>/module/ci/orgs/<org_id>/projects/<project_id>/pipelines/<pipeline_id>/pipeline-studio/
**Note:** The scanner step has been configured with default settings. You can review and modify the configuration in the pipeline studio if you need to customize scan behavior, add exclusions, or adjust other parameters.
### Next Steps
1. Run the pipeline to verify the scanner step executes successfully
2. View scan results in the Security Tests tab of the execution
3. Configure exemptions for false positives via `/security-report` skill
4. Set up policies to fail pipelines on critical vulnerabilities via `/create-policy` skill/configure-repo-scan
I want to add code scanning to my backend-api pipeline in the platform project/configure-repo-scan
Set up SAST scanning for my Python service. Use Bandit and add it after the test step./configure-repo-scan
Add Harness Code scanner to my CI pipeline. Scan after build but before pushing to registry.cloneCodebase: true so source code is availableharness_list (resource_type: "pipeline")pipeline.properties.ci.codebase.connectorRef for v0 pipelinescloneCodebase: true is set on the CI stageharness_diagnose for specific scanner errors^[a-zA-Z_][0-9a-zA-Z_]{0,127}$spec.execution.steps structure23e9b8b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.