Skip to content

Providers

A provider binds a CI/CD platform to the scanner: it builds the API context (credentials, clients) and declares which check modules run against it. The scanner's core is provider-agnostic. Adding a new platform never requires editing Scanner, Reporter, or the CLI.

CI/CD platforms

GitHub Actions

Scans every workflow under .github/workflows/. Action pinning, OIDC trust, secret hygiene, runner posture.

114 checks

GitLab CI

Parses .gitlab-ci.yml with include: resolution. Image pinning, deploy gating, manual-job posture.

52 checks

Bitbucket Pipelines

Parses bitbucket-pipelines.yml. Pipe pinning, deployment posture, custom-pipe risk.

39 checks

Azure DevOps

Parses azure-pipelines.yml with template-resolution support.

38 checks

Jenkins

Lexes Declarative + Scripted Jenkinsfiles. Credential exposure, agent pinning, sandbox bypass.

42 checks

CircleCI

Parses .circleci/config.yml with orb-mapping support.

38 checks

Google Cloud Build

Parses cloudbuild.yaml. Substitution injection, secret retrieval, signing posture.

28 checks

Buildkite

Parses .buildkite/pipeline.yml. Plugin pinning, agent-tag injection, command-step posture, TLS bypass.

18 checks

Drone CI

Parses .drone.yml / .drone.yaml. Image and plugin pinning, privileged steps, template-variable injection, literal secrets, TLS bypass.

22 checks

Harness CI/CD

Parses Harness pipeline YAML (stages / steps / stepGroups). Image digest pinning, <+codebase.*> / <+trigger.*> expression injection, privileged steps, literal secrets, pipe-to-shell, TLS bypass, host-path mounts, agentic-CLI prompt injection + autoland, model-load RCE.

19 checks

Tekton

Parses Task, Pipeline, and *Run CRDs. Step image pinning, parameter injection, workspace hygiene.

19 checks

Argo Workflows

Parses Workflow and WorkflowTemplate CRDs. Image pinning, parameter injection, container template posture.

20 checks

Gitea / Forgejo

Scans .gitea/workflows/ and .forgejo/workflows/. Reuses the full GitHub Actions rule pack (GHA-* IDs).

114 checks

Cloud & infrastructure as code

Containers & deployment

SCM posture

Package registries

Adding a new provider

  1. Create pipeline_check/core/providers/<name>.py subclassing BaseProvider.
  2. Set NAME, implement build_context(**kwargs) and check_classes.
  3. Register it in pipeline_check/core/providers/__init__.py.
  4. Add check modules under pipeline_check/core/checks/<name>/ and tests under tests/<name>/.
  5. (Optional) Add compliance mappings for the new check IDs in pipeline_check/core/standards/data/*.py.

The Scanner, --pipeline CLI flag, and provider registry pick it up automatically.