Skip to main content

Airflow Multirepo Deploy plugin

Airflow plugin for deploying DAGs from multiple Git repository from Airflow webserver.

The plugin scans every folder in Airflow DAGs folder (without subfolders), and check if it's a git repository. It's intended to be used in a scenario where DAGs are stored in a single shared volume. The volume must be mounted in the webserver too.

It's been designed for scenarios where Airflow is deployed in a Kubernetes cluster, and multiple teams deploy their DAGs from separate repos.

Features

  • Deploy DAGs from multiple Git repos
  • See deployed commit for each environment
  • Easily switch between branches

Installation

pip install apache-airflow-multirepo-deploy

Usage

Airflow helm chart

To use this plugin with the official Airflow helm chart, you need to configure:

  • dags.persistence to create a shared persistent volume
  • webserver.extraVolumes and webserver.extraVolumeMounts to mount the volume in the webserver

Configuration

Have a look at this configuration snippet and adjust it to your needs. The only required part is the GitHub App configuration if you want to use GitHub App authentication. If you don't configure it, the plugin will fall back to using SSH keys for authentication, which is also supported out of the box.

[multirepo_deploy]
# URL prefix for the deployment routes
url_prefix = deployment

# Path to the React app dist folder
react_app_dir = /path/to/plugin/ui/dist

# Optional post-deployment hook (Python callable)
# post_hook = mymodule.my_function

# Optional: restrict which branches can be deployed (comma-separated)
# allowed_branches = origin/main,origin/develop,origin/staging

# GitHub App Configuration (required for GitHub App authentication)
# To use GitHub App authentication, you need all three of these:

# 1. Your GitHub App ID (found in app settings)
gh_app_id = 123456

# 2. Base64-encoded private key for your GitHub App (PEM format)
#    Generate this from your GitHub App settings
gh_app_private_key = LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQo... (truncated for security)

# 3. Installation ID for your organization
#    Find this in the URL when you view the app installation:
#    https://github.com/organizations/YOUR_ORG/settings/installations/INSTALLATION_ID
gh_app_installation_id = 12345678

# Note: If these are not configured, only SSH key method will be available

Authentication

While you should configure the Git authentication specific to your environment, the plugin supports multiple SSH keys (like GitHub deployment keys) out of the box. For a given repo , simply store the SSH key in a file <repo_folder_name>.key in the parent folder of the repo.

Metadata

Release files for apache-airflow-multirepo-deploy 2.1.0

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

Source distribution (sdist)

Source distribution for apache-airflow-multirepo-deploy 2.1.0
File Size Uploaded Provenance Actions
apache_airflow_multirepo_deploy-2.1.0.tar.gz 640.3 kB With provenance Details for apache_airflow_multirepo_deploy-2.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for apache-airflow-multirepo-deploy 2.1.0
File Interpreter ABI Platform Actions
apache_airflow_multirepo_deploy-2.1.0-py3-none-any.whl Python 3 none any Details for apache_airflow_multirepo_deploy-2.1.0-py3-none-any.whl

Total release size: 858.9 kB

Release files / apache_airflow_multirepo_deploy-2.1.0.tar.gz

Download URL apache_airflow_multirepo_deploy-2.1.0.tar.gz
Size 640.3 kB
Tags Source
SHA-256 checksum
How to use checksums
53f9dccd8ce2758ae8d721e63b7efa72b6970b89e797968d08920b3a82295c9e
BLAKE2b-256 checksum
How to use checksums
50ca286cebe673b7398bc18909ba31ad5951e403032e1cac54bcc04ac228852d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 5, 2026.

Transparency log

Release files / apache_airflow_multirepo_deploy-2.1.0-py3-none-any.whl

Download URL apache_airflow_multirepo_deploy-2.1.0-py3-none-any.whl
Size 218.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce397a65d9d273e013f11fea702fed65c9d9efa074452ca16b8f0071b8e7ca94
BLAKE2b-256 checksum
How to use checksums
453a8f2f79da3c7d99eb180efaa074e7d294cfae47662b3b18d29903fbd2e577
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 5, 2026.

Transparency log

Security for apache-airflow-multirepo-deploy 2.1.0

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 apache_airflow_multirepo_deploy-2.1.0.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 May 5, 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