From 72c4d2d7f2c3d8d96fdf66f3b00ac0a87347ba31 Mon Sep 17 00:00:00 2001
From: "SecOps[bot]" <136828330+svc-secops@users.noreply.github.com>
Date: Thu, 11 Jan 2024 12:49:46 -0500
Subject: [PATCH] feat: SECOPS-2525 - add semgrep job (#69)
## Motivation / Implements
This PR adds or updates the necessary configuration to enable
[Semgrep](https://semgrep.dev/docs/semgrep-code/overview/) to run on PRs
on this repo. The Apollo Security team uses Semgrep to test our source
for potential security vulnerabilities.
Once this is accepted and merged, the Security team plans to make a
passing Semgrep check a requirement for PRs to merge into this repo.
This will prevent net-new severe issues from being introduced. The job
proposed by this PR runs in a diff-aware mode, so it will only alert if
net-new issues are introduced in a branch.
In the event that a severe issue _is_ detected on a PR, the CI job will
add a comment to the PR associated with the detection to provide
instructions on how to properly resolve the detection. The comment added
to PRs will also include instructions on how to get further support if
needed.
If maintainers reviewing this PR have questions, please reach out in the
`#security` channel in Slack or contact Matt Peake directly at
`matt[.]peake@apollographql[.]com`.
## Changed
- Added `.circleci/config.yml` to include appropriate configuration to
enable Semgrep as a CI check.
- Updated SecOps orb to latest version
- Updated the configuration of the Semgrep job to fail CI runs if severe
findings found
---
.circleci/config.yml | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 .circleci/config.yml
diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 0000000..32b4707
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,17 @@
+version: 2.1
+orbs:
+ secops: apollo/circleci-secops-orb@2.0.6
+workflows:
+ security-scans:
+ jobs:
+ - secops/gitleaks:
+ context:
+ - secops-oidc
+ - github-orb
+ git-base-revision: <<#pipeline.git.base_revision>><><>
+ git-revision: << pipeline.git.revision >>
+ - secops/semgrep:
+ context:
+ - secops-oidc
+ - github-orb
+ git-base-revision: <<#pipeline.git.base_revision>><><>