diff --git a/.github/workflows/sast.yml b/.github/workflows/sast.yml new file mode 100644 index 0000000..c44e5be --- /dev/null +++ b/.github/workflows/sast.yml @@ -0,0 +1,33 @@ +name: SAST + +on: + pull_request: + branches: [main] + +permissions: + contents: read + +jobs: + semgrep: + name: Semgrep Code Scan + runs-on: ubuntu-latest + container: + image: semgrep/semgrep + steps: + - uses: actions/checkout@v4 + - name: Run Semgrep + run: semgrep scan --config auto --error --severity ERROR + + gitleaks: + name: Gitleaks Secret Scan + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install Gitleaks + run: | + GITLEAKS_VERSION=$(curl -s https://api.github.com/repos/gitleaks/gitleaks/releases/latest | grep '"tag_name"' | cut -d'"' -f4 | sed 's/^v//') + curl -sSfL "https://github.com/gitleaks/gitleaks/releases/download/v${GITLEAKS_VERSION}/gitleaks_${GITLEAKS_VERSION}_linux_x64.tar.gz" | tar xz -C /usr/local/bin gitleaks + - name: Run Gitleaks + run: gitleaks detect --source . --verbose