From 12c82de78f99479835f2f56c693dc4eae76fef9d Mon Sep 17 00:00:00 2001 From: "Richard Kuo (Danswer)" Date: Fri, 1 Nov 2024 17:10:59 -0700 Subject: [PATCH] experimental github action to scan licenses --- .github/workflows/nightly-scan-licenses.yml | 74 +++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .github/workflows/nightly-scan-licenses.yml diff --git a/.github/workflows/nightly-scan-licenses.yml b/.github/workflows/nightly-scan-licenses.yml new file mode 100644 index 000000000..c55bd3028 --- /dev/null +++ b/.github/workflows/nightly-scan-licenses.yml @@ -0,0 +1,74 @@ +# Scan for problematic software licenses + +# trivy has their own rate limiting issues causing this action to flake +# we worked around it by hardcoding to different db repos in env +# can re-enable when they figure it out +# https://github.com/aquasecurity/trivy/discussions/7538 +# https://github.com/aquasecurity/trivy-action/issues/389 + +name: 'Nightly - Scan licenses' +on: + schedule: + - cron: '0 14 * * *' # Runs every day at 6 AM PST / 7 AM PDT / 2 PM UTC + workflow_dispatch: # Allows manual triggering + +jobs: + scan-licenses: + # See https://runs-on.com/runners/linux/ + runs-on: [runs-on,runner=2cpu-linux-x64,"run-id=${{ github.run_id }}"] + + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + + # Backend + - name: Pull backend docker image + run: docker pull danswer/danswer-backend:latest + + - name: Run Trivy vulnerability scanner on backend + uses: aquasecurity/trivy-action@master + env: + TRIVY_DB_REPOSITORY: 'public.ecr.aws/aquasecurity/trivy-db:2' + TRIVY_JAVA_DB_REPOSITORY: 'public.ecr.aws/aquasecurity/trivy-java-db:1' + with: + image-ref: danswer/danswer-backend:latest + scanners: license + severity: HIGH,CRITICAL + trivyignores: ./backend/.trivyignore + exit-code: 1 + + # Web server + - name: Pull web server docker image + run: docker pull danswer/danswer-web-server:latest + + - name: Run Trivy vulnerability scanner on web server + uses: aquasecurity/trivy-action@master + env: + TRIVY_DB_REPOSITORY: 'public.ecr.aws/aquasecurity/trivy-db:2' + TRIVY_JAVA_DB_REPOSITORY: 'public.ecr.aws/aquasecurity/trivy-java-db:1' + with: + image-ref: danswer/danswer-web-server:latest + scanners: license + severity: HIGH,CRITICAL + exit-code: 1 + + # Model server + - name: Pull model server docker image + run: docker pull danswer/danswer-model-server:latest + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + env: + TRIVY_DB_REPOSITORY: 'public.ecr.aws/aquasecurity/trivy-db:2' + TRIVY_JAVA_DB_REPOSITORY: 'public.ecr.aws/aquasecurity/trivy-java-db:1' + with: + image-ref: danswer/danswer-model-server:latest + scanners: license + severity: HIGH,CRITICAL + exit-code: 1 \ No newline at end of file