From 3f61f57b31f526d3c549e97d34675c8941abb2ca Mon Sep 17 00:00:00 2001 From: miladtsx <44354927+miladtsx@users.noreply.github.com> Date: Sun, 20 Apr 2025 14:11:23 +0330 Subject: [PATCH] Create run-semgrep.yaml Semgrep rules for smart contracts: https://github.com/Decurity/semgrep-smart-contracts --- .github/workflows/run-semgrep.yaml | 42 ++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/run-semgrep.yaml diff --git a/.github/workflows/run-semgrep.yaml b/.github/workflows/run-semgrep.yaml new file mode 100644 index 0000000..d098378 --- /dev/null +++ b/.github/workflows/run-semgrep.yaml @@ -0,0 +1,42 @@ +# Name of this GitHub Actions workflow. +name: Run Semgrep + +on: + # Scan changed files in PRs (diff-aware scanning): + pull_request: {} + # On-demand + workflow_dispatch: {} + +jobs: + semgrep: + # User-definable name of this GitHub Actions job: + name: Scan + # If you are self-hosting, change the following `runs-on` value: + runs-on: ubuntu-latest + + container: + # A Docker image with Semgrep installed. Do not change this. + image: returntocorp/semgrep + + # Skip any PR created by dependabot to avoid permission issues: + if: (github.actor != 'dependabot[bot]') + + steps: + # Fetch project source with GitHub Actions Checkout. + - uses: actions/checkout@v3 + # Fetch semgrep rules + - name: Fetch semgrep rules + uses: actions/checkout@v3 + with: + repository: decurity/semgrep-smart-contracts + path: rules + # Run security and gas optimization rules + - run: semgrep ci --sarif --output=semgrep.sarif || true + env: + SEMGREP_RULES: rules/solidity/security rules/solidity/performance + # Upload findings to GitHub Advanced Security Dashboard + - name: Upload findings to GitHub Advanced Security Dashboard + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: semgrep.sarif + if: always()