A DevSecOps portfolio project demonstrating Azure DevOps CI/CD for a Python application with automated linting, unit testing, security scanning, and dependency vulnerability scanning.
This project was built as part of the VectorOps LLC DevSecOps learning roadmap. The goal is to demonstrate how a secure CI/CD pipeline can automatically validate code quality, run tests, and scan for security issues before changes are accepted.
No work, government, client, or sensitive data is used in this project.
- Azure DevOps Pipelines
- Azure Repos
- GitHub portfolio publishing
- Python application structure
- Automated unit testing with Pytest
- Code linting with Ruff
- Python security scanning with Bandit
- Dependency vulnerability scanning with pip-audit
- YAML-based pipeline configuration
- DevSecOps workflow documentation
Code Commit
↓
Azure DevOps Pipeline
↓
Install Dependencies
↓
Ruff Linting
↓
Pytest Unit Tests
↓
Bandit Security Scan
↓
pip-audit Dependency Scan
↓
Application Execution
↓
Pipeline Pass / Fail
| Tool | Purpose |
|---|---|
| Azure DevOps | Runs the CI/CD pipeline |
| Azure Repos | Stores the working pipeline code |
| GitHub | Hosts the public portfolio version |
| Python | Application language |
| Ruff | Checks code quality and formatting |
| Pytest | Runs automated unit tests |
| Bandit | Scans Python code for security issues |
| pip-audit | Scans Python dependencies for known vulnerabilities |
| YAML | Defines the Azure DevOps pipeline |
vectorops-secure-pipeline/
├── app/
│ ├── __init__.py
│ └── main.py
├── tests/
│ ├── __init__.py
│ └── test_main.py
├── azure-pipelines.yml
├── requirements.txt
├── README.md
├── LICENSE
└── .gitignore
Clone the repository:
git clone https://github.com/VectorOps77/vectorops-cicd-pipeline.git
cd vectorops-cicd-pipelineInstall dependencies:
python3 -m pip install -r requirements.txtRun the application:
python3 app/main.pyRun unit tests:
python3 -m pytestRun linting:
python3 -m ruff check .Run Python security scanning:
python3 -m bandit -r appRun dependency vulnerability scanning:
python3 -m pip_auditThis project intentionally avoids storing secrets, credentials, API keys, environment files, or client data in the repository.
The pipeline includes automated checks to support secure development practices, including static code scanning and dependency vulnerability scanning.
I built a CI/CD pipeline with automated testing, dependency scanning, security scanning, and build validation using Azure DevOps and Python.
Initial DevSecOps pipeline completed.
- Add GitHub Actions mirror workflow
- Add secret scanning with Gitleaks
- Add SonarCloud code quality scanning
- Add branch protection rules
- Add pull request validation
- Add deployment stage to Azure App Service
- Add Docker build and Trivy image scanning in a future container phase
This is a fictional portfolio project created for DevSecOps learning and demonstration purposes. No work, government, client, or sensitive data is included.