Skip to main content

Prefect Deployments Toolkit

PyPI PyPI Downloads

A lightweight CLI toolkit for managing Prefect deployment lifecycles in CI/CD pipelines. It detects deployments that were added, modified, or removed between two git references, and applies (creates, updates, or deletes) those deployments against Prefect Cloud or a self-hosted Prefect server — via either the Prefect CLI or direct REST API calls.

Built for teams running many Prefect flows out of a monorepo, where each deployment is defined in its own YAML file alongside a shared prefect_base.yaml, and CI needs to figure out which deployments actually changed before re-registering them.

Features

  • Change detection — diff deployments between two git refs (a merge request source vs. target branch, or HEAD~1 vs. HEAD after a merge) and get back exactly which deployments were added, modified, or removed.
  • Unified push / pull-request logic — one code path handles both pull_request (compare local files against a fetched base branch) and push/pull_request_target (compare HEAD~1 against HEAD) event styles.
  • Dual deploy backends — apply deployments using the prefect CLI as a subprocess, or bypass it entirely with direct REST API calls for faster, more controllable deploys. Both backends work against Prefect Cloud and self-hosted/OSS Prefect servers.
  • Dev/prod environment overrides — automatic name prefixing, work pool substitution, and schedule pausing for dev environments.
  • Concurrent deployment application — apply multiple deployments in parallel with clean, non-interleaved log output per deployment.
  • Duplicate deployment name detection — warns (or optionally cleans up) when the same deployment name resolves to more than one flow.

Installation

pip install prefect-deployments-toolkit

Requires Python >= 3.9.

Usage

1. Detect modified deployments

python -m prefect_deployments_toolkit.get_modified_deployments \
  --modified-by push \
  --base-ref main \
  --deployments-dir deployments

Prints a comma-separated list of changed deployment names to stdout, and (if running inside GitHub Actions) writes DEPLOYMENT_NAMES, NEW_OR_MODIFIED_DEPLOYMENT_NAMES, and REMOVED_DEPLOYMENT_NAMES to GITHUB_ENV.

--modified-by accepts:

  • pull_request — compares your local working tree against the fetched base branch (use during an open MR/PR).
  • push or pull_request_target — compares HEAD~1 against HEAD (use after a merge to a protected branch).

2. Apply deployments

python -m prefect_deployments_toolkit \
  --deployment-names "flow_a,flow_b" \
  --enable-schedule false \
  --tag dev \
  --reference feature-branch-1 \
  --repo-name my-flows-repo \
  --custom-image "" \
  --deployments-dir deployments \
  --dev-work-pool my-dev-work-pool \
  --backend rest \
  --enforce-unique-deployment-names false

Expected Repository Layout

deployments/
├── prefect_base.yaml # shared config merged into every deployment
├── flow_a.yaml
├── flow_b.yaml
└── ...

Each deployment YAML file must declare a deployments: list with at least a name and entrypoint key, following the standard Prefect deployment YAML schema.

Backends

Backend How it works When to use
cli Shells out to prefect deploy Simplest, matches local prefect deploy behavior exactly
rest Talks directly to the Prefect REST API Faster for many concurrent deployments, avoids CLI subprocess overhead

Both backends work against Prefect Cloud (api.prefect.cloud) and self-hosted/OSS Prefect servers — the target is determined entirely by PREFECT_API_URL.

Environment Variables

Variable Required Purpose
PREFECT_API_URL Yes Full API base URL. Cloud: https://api.prefect.cloud/api/accounts/<id>/workspaces/<id>. Self-hosted: e.g. https://your-prefect-server.company.com/api
PREFECT_API_KEY Only for Prefect Cloud Cloud API key, sent as a Bearer token
PREFECT_API_AUTH_STRING Only for self-hosted servers with Basic auth enabled Sent as HTTP Basic auth (base64-encoded)

Neither PREFECT_API_KEY nor PREFECT_API_AUTH_STRING is required if your self-hosted Prefect server has no authentication configured — only PREFECT_API_URL is mandatory in every setup.

License

Licensed under PolyForm Noncommercial 1.0.0. You may view, use, and modify this software for noncommercial purposes. Commercial use — including building products, services, or automation on top of it — requires a separate license. Contact kwolski@dyvenia.com for commercial licensing inquiries.

Contributing

Issues and pull requests are welcome for noncommercial use cases. Please open an issue before submitting a large PR to discuss scope.

Metadata

Release files for prefect-deployments-toolkit 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for prefect-deployments-toolkit 0.1.6
File Size Uploaded Provenance Actions
prefect_deployments_toolkit-0.1.6.tar.gz 311.5 kB With provenance Details for prefect_deployments_toolkit-0.1.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for prefect-deployments-toolkit 0.1.6
File Interpreter ABI Platform Actions
prefect_deployments_toolkit-0.1.6-py3-none-any.whl Python 3 none any Details for prefect_deployments_toolkit-0.1.6-py3-none-any.whl

Total release size: 337.4 kB

Release files / prefect_deployments_toolkit-0.1.6.tar.gz

Download URL prefect_deployments_toolkit-0.1.6.tar.gz
Size 311.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1518551d694f91d87521a4581d0961fb3f90d421d37559f4ef799d75206a90c1
BLAKE2b-256 checksum
How to use checksums
be27d4fbdb854400ecb3a0e791bea86e9d0c008b7e56f3f417c2296583aad9a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / prefect_deployments_toolkit-0.1.6-py3-none-any.whl

Download URL prefect_deployments_toolkit-0.1.6-py3-none-any.whl
Size 26.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d380e8c45e4c4e69802cdf049781d5137b0975ef5a85e40145ba3aa8c3a5bee
BLAKE2b-256 checksum
How to use checksums
a6ed4311972d0c313f69bc4232a76b7f60b61dbf8141c8b620ea2346a78aa376
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Security for prefect-deployments-toolkit 0.1.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for prefect_deployments_toolkit-0.1.6.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page