diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1ddc925..2005d38 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,13 +1,14 @@ -version: 2 +version: 2 updates: - - package-ecosystem: "nuget" - directory: "/" - schedule: - interval: "weekly" - open-pull-requests-limit: 5 - - package-ecosystem: "github-actions" directory: "/" - schedule: - interval: "weekly" - open-pull-requests-limit: 5 + schedule: { interval: "weekly" } + open-pull-requests-limit: 10 + - package-ecosystem: "npm" + directory: "/" + schedule: { interval: "weekly" } + open-pull-requests-limit: 10 + - package-ecosystem: "pip" + directory: "/" + schedule: { interval: "weekly" } + open-pull-requests-limit: 10 diff --git a/.github/workflows/security-dependency-audit.yml b/.github/workflows/security-dependency-audit.yml new file mode 100644 index 0000000..5b94be5 --- /dev/null +++ b/.github/workflows/security-dependency-audit.yml @@ -0,0 +1,26 @@ +name: Security Dependency Audit +on: + pull_request: + push: + branches: [main, master] +permissions: { contents: read } +jobs: + audit: + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: { node-version: 22 } + - name: Audit npm projects + shell: bash + run: | + set -euo pipefail + found=0 + while IFS= read -r package; do + found=1 + dir="$(dirname "$package")" + npm install --package-lock-only --ignore-scripts --no-audit --prefix "$dir" + npm audit --audit-level=high --prefix "$dir" + done < <(find . -name package.json -not -path '*/node_modules/*' -not -path './.git/*' -print) + [ "$found" -eq 0 ] && echo "No npm projects found."