Static Code Analysis
Scan CI pipeline definitions for security findings
poutine-scan is an offline build-pipeline security scanner using poutine analyze_local.
overview
What poutine-scan does
Scan CI/CD pipeline definitions (GitHub Actions, GitLab CI, Azure Pipelines, Tekton) for build-pipeline supply-chain vulnerabilities with BoostSecurity poutine analyze_local. Native JSON findings and rule catalog; offline, nothing runs.
Analyze repository pipeline definitions with poutine 1.1.6 analyze_local. Native JSON contains findings with rule_id, package URL and location/event metadata, packages seen in the definitions, and the rule catalog. Repository .poutine.yml or .github/poutine.yml settings apply.
Supply a repository with .github, .gitlab-ci.yml, azure-pipelines.yml or .tekton. A folder containing only top-level YAML workflows is staged as .github/workflows. scm selects github by default or gitlab event semantics. Version checks are disabled and SCM token variables cleared. Findings are successful output; parse/runtime failures or no pipelines fail.
Packaged version: 1.1.6. Upstream license: Apache-2.0.
source github.com/boostsecurityio/poutine/tree/8918c66db19ecfd12b2f8379e445c3da4589e599
use cases
Where poutine-scan fits
Find pipeline injection patterns
Receive located findings for unsafe event-expression handling.
Keep dependency context
Inspect native package URLs and the rule catalog with findings.
Apply repository scan settings
Use supplied poutine configuration for local analysis.
reference
poutine-scan inputs and flags
| Name | Type | Flag | Description |
|---|---|---|---|
| source | FOLDER | --source | Repository folder with .github, .gitlab-ci.yml, azure-pipelines.yml or .tekton, or a folder of GitHub workflow .yml/.yaml files. |
| scm | STRING | --scm | github (default) or gitlab, the platform whose event semantics apply. |
Showing key inputs. poutine-scan exposes 2 inputs in total.
example
Run poutine-scan
/app/run.sh --source ./source ./outputguidance
Choosing poutine-scan
Use poutine-scan for supported local pipeline rules. Remote stale-branch and organization checks are unavailable. Zizmor overlaps on GitHub Actions injection findings but uses a different rule set; actionlint checks workflow syntax. The saved fixture here validates GitHub semantics, not every supported provider.
faq
poutine-scan questions
related
More Static Code Analysis tools
bandit
Python source in, JSON security findings out.
gitleaks
Detect hardcoded secrets in git repos and plain directories.
gosec
Go AST security scanner for credentials, crypto, and injection.
guarddog
A package coordinate in, indicator hits out.
malcontent-scan
A package coordinate in, behavior findings out.
osv-malicious
A package coordinate in, malware advisory rows out.
Run poutine-scan yourself
The saved GitHub fixture verifier confirmed injection at .github/workflows/ci.yml line 8 and default_permissions_on_risky_events, with no findings for safe.yml. The complete native findings/packages/rules report was not retained. The command shows the container entrypoint with example paths.
Facts on this page come from the live Trickest tool library.