nsip 0.4.0

NSIP Search API client for nsipsearch.nsip.org/api
Documentation
---
name: Container Security Scan

"on":
  # push:
  #   branches: [main, master]
  # pull_request:
  #   branches: [main, master]
  # schedule:
  #   - cron: "0 0 * * 0"  # Weekly on Sundays
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions:
  contents: read
  security-events: write

jobs:
  trivy:
    name: Trivy Container Scan
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        # v6.0.2
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd  # v6.0.2

      - name: Build Docker image for scanning
        run: docker build -t rust-template:scan .

      - name: Run Trivy vulnerability scanner
        # master
        uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1
        with:
          image-ref: rust-template:scan
          format: sarif
          output: trivy-results.sarif
          severity: CRITICAL,HIGH,MEDIUM

      - name: Upload Trivy results to GitHub Security
        uses: github/codeql-action/upload-sarif@v4
        if: always()
        with:
          sarif_file: trivy-results.sarif
          category: trivy-container

      - name: Generate human-readable report
        # master
        uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1
        with:
          image-ref: rust-template:scan
          format: table
          output: trivy-report.txt

      - name: Upload scan report
        # v4.6.2
        uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f  # v7.0.0
        if: always()
        with:
          name: trivy-scan-report
          path: trivy-report.txt
          retention-days: 30