[new] Code migration
This commit is contained in:
commit
cddba82185
29
README.md
Normal file
29
README.md
Normal file
@ -0,0 +1,29 @@
|
||||
# report-vulns
|
||||
A very simple action to check for vulnerabilities in projects during workflows
|
||||
|
||||
## Usage
|
||||
Use a tagged release to avoid unexpected changes that may come to the master branch
|
||||
```yaml
|
||||
name: "security checkpoint"
|
||||
uses: https://code.jakeyoungdev.com/actions/report-vulns@master
|
||||
with:
|
||||
manager: npm
|
||||
panic: no
|
||||
```
|
||||
|
||||
### Inputs
|
||||
Some inputs are supplied for better customization
|
||||
|Input|Required|Values|Default|Description|
|
||||
|---|---|---|---|---|
|
||||
|manager|required|go/npm|.|Package manager to use for scan|
|
||||
|panic|optional|yes/no|yes|Determines whether or not the job fails when vulnerabilities are found
|
||||
|
||||
## Requirements
|
||||
Package managers like Go and Node must be installed before running this action
|
||||
|
||||
## Managers
|
||||
The default or "built-in" vulnerability scanner will be used for each package manager
|
||||
|Package Manager|Vulnerability Scanner|
|
||||
|---|---|
|
||||
|npm|npm audit|
|
||||
|go|govulncheck|
|
20
action.yaml
Normal file
20
action.yaml
Normal file
@ -0,0 +1,20 @@
|
||||
name: "report-vulns"
|
||||
description: "Check for vulnerabilities in go and node apps"
|
||||
inputs:
|
||||
manager:
|
||||
description: "which auditing system to use, based on package manager. Available options are: (go|npm)"
|
||||
required: true
|
||||
default: "."
|
||||
panic:
|
||||
description: "determines whether the workflow fails when vulnerabilities are found: (yes|no)"
|
||||
required: true
|
||||
default: "yes"
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: "run script"
|
||||
shell: bash
|
||||
run: ${{ github.action_path }}/security.sh
|
||||
env:
|
||||
PACKAGE_MANAGER: ${{ inputs.manager }}
|
||||
ERROR_ON_VULN: ${{ inputs.panic }}
|
51
security.sh
Normal file
51
security.sh
Normal file
@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Starting security audit"
|
||||
|
||||
echo "Parsing package manager"
|
||||
# . is the default input and used to ensure required inputs are set, since actions don't for whatever reason
|
||||
if [[ "$PACKAGE_MANAGER" == "." ]]; then
|
||||
echo "FATAL: Manager input required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Auditing project with $PACKAGE_MANAGER"
|
||||
|
||||
#npm audit
|
||||
if [[ "$PACKAGE_MANAGER" == "npm" ]]; then
|
||||
VULNS=$(npm audit)
|
||||
if [[ "$VULNS" == "found 0 vulnerabilities" ]]; then
|
||||
echo "No vulnerabilities found, audit passed!"
|
||||
exit 0
|
||||
else
|
||||
if [[ "$ERROR_ON_VULN" == "no" ]]; then
|
||||
echo "$VULNS"
|
||||
exit 0
|
||||
else
|
||||
echo "FATAL: Vulnerabilities found, details below"
|
||||
echo "$VULNS"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
#govulncheck
|
||||
if [[ "$PACKAGE_MANAGER" == "go" ]]; then
|
||||
VULNS=$(govulncheck ./...)
|
||||
#if vulns are found the exit status is 1
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "No vulnerabilities found, audit passed!"
|
||||
exit 0
|
||||
else
|
||||
if [[ "$ERROR_ON_VULN" == "no" ]]; then
|
||||
echo "$VULNS"
|
||||
exit 0
|
||||
else
|
||||
echo "FATAL: Vulnerabilities found, details below"
|
||||
echo "$VULNS"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Done"
|
Loading…
x
Reference in New Issue
Block a user