🔄 Created local '.github/workflows/semgrep.yml' from remote 'semgrep/semgrep.yml' (#5028)

Co-authored-by: security-bot <null>
This commit is contained in:
Security Bot
2023-01-23 15:50:41 +05:30
committed by GitHub Enterprise
parent 52d76f73bd
commit cfcfaa5605

69
.github/workflows/semgrep.yml vendored Normal file
View File

@@ -0,0 +1,69 @@
name: Semgrep
on:
# Scan changed files in PRs, block on new issues only (existing issues ignored)
pull_request:
branches:
- master
- main
# Schedule this job to run at a certain time, using cron syntax
# Note that * is a special character in YAML so you have to quote this string
schedule:
- cron: '00 03 * * 0' # scheduled for 8.30 AM on every sunday
jobs:
semgrep:
name: Static code Analysis
runs-on: [ self-hosted ]
# Skip any PR created by dependabot to avoid permission issues
if: (github.actor != 'dependabot[bot]')
steps:
- name: Clean workspace
uses: navi-infra/clean-workspace@master
# Fetch Project Source
- uses: actions/checkout@v3
name: Checkout Source Repository
# Fetch Semgrep Rules
- name: Fetching Semgrep Rules
uses: actions/checkout@v3
with:
repository: Information-Security/semgrep-rules
path: semgrep-rules
- name: Semgrep Scan
run: |
semgrep ci -q || true && semgrep ci -q --json > semgrep.json
env:
PR_NUMBER: ${{ github.event.number }}
# Select rules for your scan with one of these two options.
# Option 1: set hard-coded rulesets
SEMGREP_RULES: >- # more at semgrep.dev/r
./semgrep-rules
- name: Send Vulnerablity Result(s)
if: failure()
run: /usr/bin/curl -s -X POST http://semgrep.cmd.navi-tech.in/v1/semgrep/ -H "X-repo-name":${{ github.repository }} -H "X-pr-number":${{github.event.number}} -H "X-event-name":${{ github.event_name }} -H "Content-Type:application/json" -d @semgrep.json
- name: Send Metadata
run: /usr/bin/curl -s -X GET http://semgrep.cmd.navi-tech.in/v1/semgrep/ -H "X-repo-name":${{ github.repository }} -H "X-pr-number":${{github.event.number}} -H "X-event-name":${{ github.event_name }} -H "Content-Type:application/json"
run-if-failed:
runs-on: [ self-hosted ]
needs: [semgrep]
if: always() && (needs.semgrep.result == 'failure')
steps:
- name: Create comment
if: ${{ ( github.event.number != '' ) }}
uses: peter-evans/create-or-update-comment@v2
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
**Vulnerabilities have been discovered in this PR. Please check the vulnerability Analysis section of Semgrep Workflow to understand the security vulnerability. Feel free to reach out to #sast-help for more information **
- name: Assign Reviewers
if: ${{ ( github.event.number != '' ) }}
uses: Information-Security/security-oncall-action@v1.1