Sign inSign up

theoptimizers/devsecops

By theoptimizers

•Updated 5 months ago

Image
0

636

theoptimizers/devsecops repository overview

ā šŸ” DevSecOps Scanner (Syft + Grype + Trivy + Gitleaks)

A lightweight, automated DevSecOps scanning utility that integrates multiple open-source security tools into a single Docker image.
Supports code, container image, and secret scanning with flexible reporting and multi-platform support.


ā šŸš€ Features

  • āœ… Code scanning using Syft⁠ (SBOM) + Grype⁠
  • āœ… Container image scanning using Trivy⁠
  • āœ… Secret scanning using Gitleaks⁠
  • āœ… Public & Private Repositories (GitHub & Bitbucket)
  • āœ… AWS S3 integration for report uploads
  • āœ… Multi-architecture support: amd64 and arm64
  • āœ… Offline/local report storage

⁠🧰 Requirements

RequirementDescription
🐳 DockerRequired to run the image
ā˜ļø AWS credentials (optional)If uploading reports to S3
šŸ”‘ GitHub / Bitbucket credentials (optional)For private repositories

ā šŸ› ļø Usage

All reports are saved under the /output directory.
You can mount a local folder ($(pwd)/reports) to collect them.


ā šŸ“¦ Public Repositories

ā šŸ’¾ Save report locally (GitHub)
docker run --rm \
  -e REPO_URL=https://github.com/your_user/your_public_repo.git \
  -e REPO_BRANCH=master \
  -v $(pwd)/reports:/output \
  theoptimizers/devsecops:v2 \
  --code-scanner


šŸ’¾ Save report locally (Bitbucket)

docker run --rm \
  -e REPO_URL=https://bitbucket.org/your_team/public_repo.git \
  -e REPO_BRANCH=main \
  -v $(pwd)/reports:/output \
  theoptimizers/devsecops:v2 \
  --code-scanner


ā˜ļø Upload Reports to S3 (Public Repos)

GitHub

docker run --rm \
  -e REPO_URL=https://github.com/your_user/your_public_repo.git \
  -e REPO_BRANCH=master \
  -e AWS_ACCESS_KEY_ID=your_key \
  -e AWS_SECRET_ACCESS_KEY=your_secret \
  -e S3_BUCKET=your-bucket-name \
  -v $(pwd)/reports:/output \
  theoptimizers/devsecops:v2 \
  --code-scanner

Bitbucket

docker run --rm \
  -e REPO_URL=https://bitbucket.org/your_team/public_repo.git \
  -e REPO_BRANCH=main \
  -e AWS_ACCESS_KEY_ID=your_key \
  -e AWS_SECRET_ACCESS_KEY=your_secret \
  -e S3_BUCKET=your-bucket-name \
  -v $(pwd)/reports:/output \
  theoptimizers/devsecops:v2 \
  --code-scanner


šŸ” Private Repositories

GitHub (local report)

docker run --rm \
  -e REPO_URL=https://github.com/your_user/your_private_repo.git \
  -e REPO_BRANCH=main \
  -e GITHUB_USER=your_user \
  -e GITHUB_TOKEN=your_token \
  -v $(pwd)/reports:/output \
  theoptimizers/devsecops:v2 \
  --code-scanner


Bitbucket (local report)

docker run --rm \
  -e REPO_URL=https://bitbucket.org/your_team/your_repo.git \
  -e REPO_BRANCH=main \
  -e BITBUCKET_USER=your_username \
  -e APP_PASSWORD=your_app_password \
  -v $(pwd)/reports:/output \
  theoptimizers/devsecops:v2 \
  --code-scanner


ā˜ļø Private Repos + S3 Storage

GitHub

docker run --rm \
  -e REPO_URL=https://github.com/your_user/your_private_repo.git \
  -e REPO_BRANCH=main \
  -e GITHUB_USER=your_user \
  -e GITHUB_TOKEN=your_token \
  -e AWS_ACCESS_KEY_ID=your_key \
  -e AWS_SECRET_ACCESS_KEY=your_secret \
  -e S3_BUCKET=your-bucket-name \
  -v $(pwd)/reports:/output \
  theoptimizers/devsecops:v2 \
  --code-scanner

Bitbucket

docker run --rm \
  -e REPO_URL=https://bitbucket.org/your_team/your_repo.git \
  -e REPO_BRANCH=main \
  -e BITBUCKET_USER=your_username \
  -e APP_PASSWORD=your_app_password \
  -e AWS_ACCESS_KEY_ID=your_key \
  -e AWS_SECRET_ACCESS_KEY=your_secret \
  -e S3_BUCKET=your-bucket-name \
  -v $(pwd)/reports:/output \
  theoptimizers/devsecops:v2 \
  --code-scanner


šŸ”Ž Secret Scanning (Gitleaks)

Bitbucket (public)

docker run --rm \
  -v $(pwd)/reports:/output \
  -e REPO_URL="https://bitbucket.org/yourteam/public-repo.git" \
  -e REPO_BRANCH=main \
  theoptimizers/devsecops:v2 \
  --git-secrets-check


Bitbucket (private)

docker run --rm \
  -v $(pwd)/reports:/output \
  -e REPO_URL="https://bitbucket.org/yourteam/private-repo.git" \
  -e REPO_BRANCH=main \
  -e BITBUCKET_USER="your-bitbucket-username" \
  -e APP_PASSWORD="your-app-password" \
  theoptimizers/devsecops:v2 \
  --git-secrets-check


GitHub (public)

docker run --rm \
  -e REPO_URL=https://github.com/your_user/your_public_repo.git \
  -e REPO_BRANCH=main \
  -v $(pwd)/reports:/output \
  theoptimizers/devsecops:v2 \
  --git-secrets-check


GitHub (private)

docker run --rm \
  -e REPO_URL=https://github.com/your_user/private-repo.git \
  -e REPO_BRANCH=main \
  -e GITHUB_USER=your_user \
  -e GITHUB_TOKEN=your_token \
  -v $(pwd)/reports:/output \
  theoptimizers/devsecops:v2 \
  --git-secrets-check


🐳 Docker Image Scanning (Trivy)

Remote Public Image

docker run --rm \
  -v $(pwd)/reports:/output \
  -v $(pwd)/.cache/trivy:/root/.cache/trivy \
  theoptimizers/devsecops:v2 \
  --docker-scanner your_image_name

Local Image

docker run --rm \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $(pwd)/reports:/output \
  -v $(pwd)/.cache/trivy:/root/.cache/trivy \
  theoptimizers/devsecops:v2 \
  --docker-scanner your_image_name

🧩 Tools Installed

ToolVersionDescription
Syft1.40.1Generates SBOM (Software Bill of Materials)
Grype0.105.0Vulnerability scanner for SBOMs
Trivy0.68.2Container image and filesystem scanner
AWS CLI2.31.13Used for uploading reports to S3
Gitleaks8.30.0Secret and credential scanner

šŸ“ Output Files

ToolDefault OutputFormat
Syft/output/syft-sbom.jsonCycloneDX JSON
Grype/output/grype-report.jsonJSON
Trivy/output/trivy-docker-report-*.jsonJSON
Gitleaks/output/gitleaks-report.jsonJSON

āš ļø Exit Codes

CodeMeaning
0No critical vulnerabilities found
1Critical vulnerabilities detected or error occurred

Tag summary

Content type

Image

Digest

sha256:9d1236ab8…

Size

228.9 MB

Last updated

5 months ago

docker pull theoptimizers/devsecops:v1