commit change #156
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow uses actions that are not certified by GitHub. | |
# They are provided by a third-party and are governed by | |
# separate terms of service, privacy policy, and support | |
# documentation. | |
# A sample workflow which sets up Snyk to analyze the full Snyk platform (Snyk Open Source, Snyk Code, | |
# Snyk Container and Snyk Infrastructure as Code) | |
# The setup installs the Snyk CLI - for more details on the possible commands | |
# check https://docs.snyk.io/snyk-cli/cli-reference | |
# The results of Snyk Code are then uploaded to GitHub Security Code Scanning | |
# | |
# In order to use the Snyk Action you will need to have a Snyk API token. | |
# More details in https://github.com/snyk/actions#getting-your-snyk-token | |
# or you can signup for free at https://snyk.io/login | |
# | |
# For more examples, including how to limit scans to only high-severity issues | |
# and fail PR checks, see https://github.com/snyk/actions/ | |
name: Snyk SAST and SCA Scan | |
on: push | |
jobs: | |
security: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Run Snyk Code Test for SAST | |
uses: snyk/actions/node@master | |
continue-on-error: true # Allows the workflow to proceed even if vulnerabilities are found | |
env: | |
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN_2 }} | |
with: | |
command: code test --sarif-file-output=snyk-code.sarif | |
- name: Upload result to GitHub Code Scanning | |
uses: github/codeql-action/upload-sarif@v2 | |
with: | |
sarif_file: snyk-code.sarif | |
- name: Monitor SAST results with Snyk | |
uses: snyk/actions/node@master | |
env: | |
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN_2 }} | |
with: | |
command: monitor | |
- name: Run Snyk to check for SCA vulnerabilities | |
uses: snyk/actions/node@master | |
continue-on-error: true # To make sure that SARIF upload gets called | |
env: | |
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN_2 }} | |
with: | |
command: test --sarif-file-output=snyk-dependency.sarif | |
- name: Upload result to GitHub Code Scanning | |
uses: github/codeql-action/upload-sarif@v2 | |
with: | |
sarif_file: snyk-dependency.sarif | |
- name: Monitor dependencies with Snyk | |
uses: snyk/actions/node@master | |
env: | |
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN_2 }} | |
with: | |
command: monitor | |
#- name: Print sarif-code file | |
# run: cat snyk-code.sarif | |
- name: Total SAST security issues | |
run: | | |
length=$(cat snyk-code.sarif | jq '.runs[0].results | length') | |
echo "RESULTS_LENGTH=$length" >> $GITHUB_ENV | |
- name: Send SAST notification on Slack using Webhooks | |
uses: slackapi/slack-github-action@v1.24.0 | |
if: always() | |
with: | |
payload: | | |
{ | |
"text": "*The Snyk SAST scan result for repo nodejs-goof-BC is : ${{ job.status }}* \n*Number of vulnerabilities : ${{ env.RESULTS_LENGTH }}* \n*Detail*: https://github.com/${{github.repository}}/actions/run/${{github.run_id}}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
- name: Total SCA security issues | |
run: | | |
length=$(cat snyk-dependency.sarif | jq '.runs[0].results | length') | |
echo "RESULTS_LENGTH_2=$length" >> $GITHUB_ENV | |
- name: Send SCA notification on Slack using Webhooks | |
uses: slackapi/slack-github-action@v1.24.0 | |
if: always() | |
with: | |
payload: | | |
{ | |
"text": "*The Snyk SCA scan result for repo nodejs-goof-BC is : ${{ job.status }}* \n*Number of vulnerabilities : ${{ env.RESULTS_LENGTH_2 }}* \n*Detail*: https://github.com/${{github.repository}}/actions/run/${{github.run_id}}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
#name: Snyk Security | |
#on: | |
# push: | |
# branches: ["main" ] | |
# pull_request: | |
# branches: ["main"] | |
#permissions: | |
# contents: read | |
#jobs: | |
# snyk: | |
# permissions: | |
# contents: read # for actions/checkout to fetch code | |
# security-events: write # for github/codeql-action/upload-sarif to upload SARIF results | |
# actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - name: Set up Snyk CLI to check for security issues | |
# Snyk can be used to break the build when it detects security issues. | |
# In this case we want to upload the SAST issues to GitHub Code Scanning | |
# uses: snyk/actions/setup@806182742461562b67788a64410098c9d9b96adb | |
# continue-on-error: true | |
# For Snyk Open Source you must first set up the development environment for your application's dependencies | |
# For example for Node | |
#- uses: actions/setup-node@v4 | |
# with: | |
# node-version: 20 | |
# env: | |
# This is where you will need to introduce the Snyk API token created with your Snyk account | |
# SNYK_TOKEN: ${{ secrets.SNYK_TOKEN_2}} | |
# Runs Snyk Code (SAST) analysis and uploads result into GitHub. | |
# Use || true to not fail the pipeline | |
# - name: Snyk Code test | |
# run: snyk code test --org=efba75ee-f721-4c0c-9c87-5ff41d45f282 --sarif --debug > snyk-sarif4.json | |
# run: snyk code test --sarif > sarif3.json 2 || true | |
#- name: Display SARIF file | |
# run: cat sarif3.json | |
# - name: Validate SARIF file | |
# run: jq empty sarif3.json | |
# Runs Snyk Open Source (SCA) analysis and uploads result to Snyk. | |
#- name: Snyk Open Source monitor | |
# run: snyk monitor --all-projects | |
# Runs Snyk Infrastructure as Code (IaC) analysis and uploads result to Snyk. | |
# Use || true to not fail the pipeline. | |
#- name: Snyk IaC test and report | |
#run: snyk iac test --report # || true | |
# Build the docker image for testing | |
# - name: Build a Docker image | |
# run: docker build -t your/image-to-test . | |
# Runs Snyk Container (Container and SCA) analysis and uploads result to Snyk. | |
#- name: Snyk Container monitor | |
# run: snyk container monitor your/image-to-test --file=Dockerfile | |
# Push the Snyk Code results into GitHub Code Scanning tab | |
# - name: Upload result to GitHub Code Scanning | |
# uses: github/codeql-action/upload-sarif@v3 | |
# with: | |
# sarif_file: sarif4.json |