Skip to content

Commit 710b3b2

Browse files
authored
Update snyk-security.yml
1 parent 49fd32d commit 710b3b2

File tree

1 file changed

+69
-45
lines changed

1 file changed

+69
-45
lines changed
Lines changed: 69 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,79 @@
1-
name: Build code, run unit test, run SAST, SCA, DAST security scans for NodeJs App
1+
# This workflow uses actions that are not certified by GitHub.
2+
# They are provided by a third-party and are governed by
3+
# separate terms of service, privacy policy, and support
4+
# documentation.
5+
6+
# A sample workflow which sets up Snyk to analyze the full Snyk platform (Snyk Open Source, Snyk Code,
7+
# Snyk Container and Snyk Infrastructure as Code)
8+
# The setup installs the Snyk CLI - for more details on the possible commands
9+
# check https://docs.snyk.io/snyk-cli/cli-reference
10+
# The results of Snyk Code are then uploaded to GitHub Security Code Scanning
11+
#
12+
# In order to use the Snyk Action you will need to have a Snyk API token.
13+
# More details in https://github.com/snyk/actions#getting-your-snyk-token
14+
# or you can signup for free at https://snyk.io/login
15+
#
16+
# For more examples, including how to limit scans to only high-severity issues
17+
# and fail PR checks, see https://github.com/snyk/actions/
18+
19+
name: Snyk Security
20+
221
on:
322
push:
4-
branches:
5-
- main # This triggers the workflow on pushes to the main branch
23+
branches: ["main" ]
624
pull_request:
7-
branches:
8-
- main # This triggers the workflow on pull requests targeting the main branch
25+
branches: ["main"]
26+
27+
permissions:
28+
contents: read
929

1030
jobs:
11-
build:
31+
snyk:
32+
permissions:
33+
contents: read # for actions/checkout to fetch code
34+
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
35+
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
1236
runs-on: ubuntu-latest
13-
name: Run unit tests and SAST scan on the source code
1437
steps:
15-
- uses: actions/checkout@v4
16-
- uses: actions/setup-node@v4
17-
with:
18-
node-version: 21
19-
cache: npm
20-
- run: npm install
21-
- name: SonarCloud Scan
22-
uses: sonarsource/sonarcloud-github-action@master
23-
env:
24-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25-
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
26-
with:
27-
args: >
28-
-Dsonar.organization=dotnetgithubactionsorg
29-
-Dsonar.projectKey=dotnetgithubactionsproject
30-
security:
31-
runs-on: ubuntu-latest
32-
needs: build
33-
name: Run the SCA scan on the source code
34-
steps:
35-
- uses: actions/checkout@master
36-
- name: RunSnyk to check for vulnerabilities
37-
uses: snyk/actions/node@master
38-
continue-on-error: true
38+
- uses: actions/checkout@v4
39+
- name: Set up Snyk CLI to check for security issues
40+
# Snyk can be used to break the build when it detects security issues.
41+
# In this case we want to upload the SAST issues to GitHub Code Scanning
42+
uses: snyk/actions/setup@806182742461562b67788a64410098c9d9b96adb
43+
44+
# For Snyk Open Source you must first set up the development environment for your application's dependencies
45+
# For example for Node
46+
#- uses: actions/setup-node@v4
47+
# with:
48+
# node-version: 20
49+
3950
env:
51+
# This is where you will need to introduce the Snyk API token created with your Snyk account
4052
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
41-
zap_scan:
42-
runs-on: ubuntu-latest
43-
needs: security
44-
name: Run DAST scan on the web application
45-
steps:
46-
- name: Checkout
47-
uses: actions/checkout@v4
48-
with:
49-
ref: master
50-
- name: ZAP Scan
51-
uses: zaproxy/action-baseline@v0.14.0
53+
54+
# Runs Snyk Code (SAST) analysis and uploads result into GitHub.
55+
# Use || true to not fail the pipeline
56+
- name: Snyk Code test
57+
run: snyk code test --sarif > snyk-code.sarif # || true
58+
59+
# Runs Snyk Open Source (SCA) analysis and uploads result to Snyk.
60+
- name: Snyk Open Source monitor
61+
run: snyk monitor --all-projects
62+
63+
# Runs Snyk Infrastructure as Code (IaC) analysis and uploads result to Snyk.
64+
# Use || true to not fail the pipeline.
65+
- name: Snyk IaC test and report
66+
run: snyk iac test --report # || true
67+
68+
# Build the docker image for testing
69+
- name: Build a Docker image
70+
run: docker build -t your/image-to-test .
71+
# Runs Snyk Container (Container and SCA) analysis and uploads result to Snyk.
72+
- name: Snyk Container monitor
73+
run: snyk container monitor your/image-to-test --file=Dockerfile
74+
75+
# Push the Snyk Code results into GitHub Code Scanning tab
76+
- name: Upload result to GitHub Code Scanning
77+
uses: github/codeql-action/upload-sarif@v3
5278
with:
53-
target: 'http://example.com/'
54-
rules_file_name: '.zap/rules.tsv'
55-
cmd_options: '-a'
79+
sarif_file: snyk-code.sarif

0 commit comments

Comments
 (0)