Skip to content

Reusable flow to check for vulns in dependencies of a Nsolid branch #55

Reusable flow to check for vulns in dependencies of a Nsolid branch

Reusable flow to check for vulns in dependencies of a Nsolid branch #55

Workflow file for this run

name: Reusable flow to check for vulns in dependencies of a Nsolid branch
on:
workflow_call:
inputs:
nsolidStream:
type: string
default: 'main'
secrets:
NVD_API_KEY:
required: true
workflow_dispatch:
inputs:
nsolidStream:
type: string
default: 'main'
permissions:
contents: read
issues: write
# Serialize reconciliation per stream so two runs for the same stream can never
# race and double-create issues.
concurrency:
group: reconcile-${{ inputs.nsolidStream }}
cancel-in-progress: false
jobs:
check-vulns:
runs-on: ubuntu-latest
steps:
- name: Setup Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Verify Node.js and npm installation
run: |
echo "Node.js version:"
node --version
echo "npm version:"
npm --version
echo "Python version:"
python3 --version
- name: Checkout current repository
uses: actions/checkout@v4
- name: Installing pre-reqs
working-directory: ./dep_checker
run: pip install -r requirements.txt
- name: Checkout Nsolid repo
uses: actions/checkout@v4
with:
repository: nodesource/nsolid
path: nsolid
ref: ${{ inputs.nsolidStream }}
- name: Run the check
working-directory: ./dep_checker
# Write clean JSON to result.json (diagnostics go to stderr). A non-zero exit
# just means "vulnerabilities were found" — it must not skip reconciliation.
run: |
python3 main.py --scan-file result.json --include-npm --npm-timeout 600 \
--gh-token ${{ secrets.GITHUB_TOKEN }} --nvd-key=${{ secrets.NVD_API_KEY }} \
../nsolid ${{ inputs.nsolidStream }} || true
echo "Scan result:"
cat result.json
- name: Reconcile issues
if: ${{ always() }}
working-directory: ./dep_checker
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
run: |
python3 reconcile_issues.py \
--stream "${{ inputs.nsolidStream }}" \
--scan-file result.json \
--action-url "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"