Context
Plumber is an open-source CI/CD compliance scanner for GitHub Actions and GitLab CI pipelines. It checks pipelines against security best practices — action pinning, authorized sources, forbidden tags, Docker-in-Docker, hardcoded secrets, etc.
The orange-cloudavenue/cloudavenue-sdk-go repo was scanned on Plumber Radar (https://getplumber.io/radar) and scored D (37.58/100) with 21 high-severity issues across two controls:
actionPinningResult — actions not pinned to commit SHA
authorizedActionSourcesResult — actions from unapproved sources
Goal
Add a reusable GitHub Actions workflow (or scheduled job) to the org's centralized workflows that runs Plumber analysis on every push/PR and reports compliance scores. This can be:
- A new workflow file (e.g.,
plumber_compliance.yml) that can be composed into consumer repos via workflow_call
- Or integration into an existing PR checks workflow
What Plumber offers
- Analyze endpoint:
POST /radar/api/analyze {projectPath} to trigger a scan
- Status polling:
GET /radar/api/analyze/status?pipelineId=<id> to get results
- Report output: compliance score, per-control pass/fail, issue counts by severity
Alternatively, Plumber may offer a GitHub Action or CLI — investigate and use whichever fits best.
Requirements
References
Context
Plumber is an open-source CI/CD compliance scanner for GitHub Actions and GitLab CI pipelines. It checks pipelines against security best practices — action pinning, authorized sources, forbidden tags, Docker-in-Docker, hardcoded secrets, etc.
The
orange-cloudavenue/cloudavenue-sdk-gorepo was scanned on Plumber Radar (https://getplumber.io/radar) and scored D (37.58/100) with 21 high-severity issues across two controls:actionPinningResult— actions not pinned to commit SHAauthorizedActionSourcesResult— actions from unapproved sourcesGoal
Add a reusable GitHub Actions workflow (or scheduled job) to the org's centralized workflows that runs Plumber analysis on every push/PR and reports compliance scores. This can be:
plumber_compliance.yml) that can be composed into consumer repos viaworkflow_callWhat Plumber offers
POST /radar/api/analyze {projectPath}to trigger a scanGET /radar/api/analyze/status?pipelineId=<id>to get resultsAlternatively, Plumber may offer a GitHub Action or CLI — investigate and use whichever fits best.
Requirements
workflow_callaction (matching the repo's existing pattern)References
.github/workflows/composableworkflow_callactions synced viasync.yml