# Static Application Security Testing name: sast on: workflow_dispatch: push: branches: ["master"] pull_request: branches: ["master"] schedule: - cron: "00 00 * * 0" jobs: sast: 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: Bandit uses: mdegis/bandit-action@85fcc340c3b0bf5d86029abb49b9aac916d807b2 with: # exit with 0, even with results found # exit_zero: true # optional, default is DEFAULT # Github token of the repository (automatically created by Github) GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information. # File or directory to run bandit on path: ./src/validators # optional, default is . # Report only issues of a given severity level or higher. Can be LOW, MEDIUM or HIGH. Default is UNDEFINED (everything) # level: # optional, default is UNDEFINED # Report only issues of a given confidence level or higher. Can be LOW, MEDIUM or HIGH. Default is UNDEFINED (everything) # confidence: # optional, default is UNDEFINED # comma-separated list of paths (glob patterns supported) to exclude from scan (note that these are in addition to the excluded paths provided in the config file) (default: .svn,CVS,.bzr,.hg,.git,__pycache__,.tox,.eggs,*.egg) excluded_paths: .github,.pytest_cache,.venv,.vscode,site,tests # optional, default is DEFAULT # comma-separated list of test IDs to skip # skips: # optional, default is DEFAULT # path to a .bandit file that supplies command line arguments # ini_path: # optional, default is DEFAULT # https://github.com/marketplace/actions/bandit-scan is ISC licensed, by abirismyname # https://pypi.org/project/bandit/ is Apache v2.0 licensed, by PyCQA