Skip to content
Agentmart
Submit a tool

ci-security-scanning

Add automated security scanning to CI/CD — GitHub Actions, GitLab CI, or any pipeline — so every pull request is checked for vulnerabilities before it merges…

Skill by Tecosys

IndexedAGPL-3.0★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tecosys-ci-security-scanning

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Add automated security scanning to CI/CD — GitHub Actions, GitLab CI, or any pipeline — so every pull request is checked for vulnerabilities before it merges, with the build failing on real findings and results uploaded as SARIF to code scanning. Covers diff-scoped review of changed files, secret scanning, dependency/SCA, and SAST/DAST gates. Use when the user asks to add security scanning, SAST, DAST, pentesting, vulnerability checks, or automated security review to their CI pipeline, pre-merge gate, or PR workflow.

Use cases: devops, data, security, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/ci-security-scanning

What's inside

Skill name
ci-security-scanning
Description
Add automated security scanning to CI/CD — GitHub Actions, GitLab CI, or any pipeline — so every pull request is checked for vulnerabilities before it merges, with the build failing on real findings and results uploaded as SARIF to code scanning. Covers diff-scoped review of changed files, secret scanning, dependency/SCA, and SAST/DAST gates. Use when the user asks to add security scanning, SAST, DAST, pentesting, vulnerability checks, or automated security review to their CI pipeline, pre-merge gate, or PR workflow.
License
AGPL-3.0
Instructions
89 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Set up security scanning in CI/CD

Gate pull requests so vulnerable code is caught before it merges. Build a layered pipeline — each layer catches a class the others structurally can't — and fail the build on real findings. Nutaan writes the workflow file and wires it to the repo; the layers below are ordered cheapest-first.

## The layers

| Layer | Catches | Common OSS tool |
|---|---|---|
| **Secret scanning** | Committed keys, tokens, passwords | `gitleaks`, `trufflehog` |
| **Dependency / SCA** | Known-CVE dependencies | `osv-scanner`, `trivy`, `npm audit`, `pip-audit` |
| **SAST (static)** | Injection, XSS, unsafe patterns in source | `semgrep` |
| **DAST / dynamic** | Exploitable bugs against a running app | `nuclei`, OWASP ZAP baseline; or the exploit-validated review below |
| **Exploit-validated review** | Logic/authz/injection bugs, proven not just flagged | Nutaan itself, or the Strix CLI if installed |

Secret + SCA + SAST are fast and belong on **every PR**. DAST and deep review are heavier — run them diff-scoped on PRs and in full on a nightly/`release` schedule.

## GitHub Actions starter

Create `.github/workflows/security.yml`:

```yaml
name: Security Scan
on:
  pull_request:

permissions:
  contents: read
  security-events: write   # for SARIF upload

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0     # required so diff-scoped steps can resolve the base

      - name: Secret scan
        uses: gitleaks/gitleaks-action@v2

      - name: Dependency scan
        uses: google/osv-scanner-action@v1
        with:
          scan-args: "-r ."

      - name: SAST (Semgrep)
        uses: semgrep/semgrep-action@v1
        with:
          config: p/ci
          generateSarif: "1"

      - name: Upload SARIF
        if: always()
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: semgrep.sarif
```

Tune each action to **fail the job on findings at your chosen severity** (most support a severity threshold) — a scan that never fails the build is decoration, not a gate.

## Diff-scoped review on large repos

Reviewing the whole tree on every PR is wasteful. Scope to the PR's changed files and resolve the base branch robustly — don't hard-code `origin/main`:

```bash
# Prefer the CI's own base-branch variable; fall back to origin/HEAD.
BASE_BRANCH="${GITHUB_BASE_REF:-${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-}}"
if [ -z "$BASE_BRANCH" ]; then
  BASE_BRANCH=$(git symbolic-ref --quiet --short refs/remotes/origin/HEAD 2>/dev/null)
  BASE_BRANCH="${BASE_BRANCH#origin/}"
fi
DIFF_BASE="origin/${BASE_BRANCH:-main}"
# Fail loudly rather than silently narrowing scope to, say, HEAD~1 (which on a
# multi-commit branch would scan only the last commit and let earlier ones pass).
git rev-parse --verify --quiet "$DIFF_BASE" >/dev/null || {
  echo "Cannot resolve diff base '$DIFF_BASE' — fetch the base branch or set it explicitly." >&2; exit 1; }
CHANGED=$(git diff --name-only "$DIFF_BASE"...HEAD)
# run semgrep / your reviewer over $CHANGED
```

## Other pipelines

Any CI works the same way: install the tools, run them headless, and gate on the exit code. Schedule `standard` scans nightly and a full dynamic/exploit-validated pass for release candidates.

## Don't fail open

A passing scan means "nothing found **in what was scanned**", not "secure". Make sure each step actually fails on findings, that diff resolution didn't silently fall back to an empty diff, and that heavy dynamic passes are given enough time/budget to finish. A green check on a scan that never ran, or ran on zero files, is worse than no gate — it manufactures false confidence. Findings that make it through still get remediated with `fix-security-vulnerabilities`.

From Tecosys/Nutaan-Code, AGPL-3.0.

More from Tecosys/Nutaan-Code

Signals

Stars
1
Forks
1
Open issues
0
Last commit (this folder)
Sep 12, 2026 (1 month ago)
Last release
Sep 20, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
AGPL-3.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Tecosys

Cite this page

ci-security-scanning skill. Agent Mart. https://agentmart.dev/skills/tecosys-ci-security-scanning (last updated 2026-10-24)