Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Semgrep static analysis #95

Merged
merged 1 commit into from
Nov 14, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions .github/workflows/Semgrep.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Based on:
# https://semgrep.dev/docs/semgrep-ci/sample-ci-configs#github-actions
# https://0xdbe.github.io/GitHub-HowToEnableCodeScanningWithSemgrep/
# https://medium.com/@mostafa.elnakeb/supercharging-your-code-quality-with-semgrep-sast-in-github-actions-c8f30eb26655
# Name of this GitHub Actions workflow.
name: Semgrep OSS scan

on:
# Scan on-demand through GitHub Actions interface:
workflow_dispatch:
branches:
- main
# Schedule the CI job (this method uses cron syntax):
schedule:
- cron: '0 0 * * 1' # Run at start of week

jobs:
semgrep:
# User definable name of this GitHub Actions job.
name: semgrep-oss/scan
# If you are self-hosting, change the following `runs-on` value:
runs-on: ubuntu-latest

steps:
# Checkout the repository.
- name: Clone source code
uses: actions/checkout@v4

# Checkout custom rules
- name: Checkout custom rules
uses: actions/checkout@v4
with:
repository: JuliaComputing/semgrep-rules-julia
ref: main
path: ./JuliaRules

# Prepare Python
- uses: actions/setup-python@v5
with:
python-version: '3.10'

# Install Semgrep
- name: Install Semgrep
run: python3 -m pip install semgrep

# Run Semgrep
- name: Scan with Semgrep
run: |
semgrep scan \
--config ./JuliaRules/rules \
--metrics=off \
--sarif --output report.sarif \
--oss-only \
--exclude=JuliaRules
- name: Save Semgrep report
uses: actions/upload-artifact@v4
with:
name: report.sarif
path: report.sarif

- name: Upload Semgrep report
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: report.sarif
category: semgrep
Loading