Skip to main content

CLI utility to sync DAG files into an Apache Airflow dags folder

Project description

Apache Airflow DagSyncer

Category Badges
License License
PyPI PyPI version PyPI - Python Version

apache-airflow-dagsyncer is a command-line utility to sync Dag files from a source location into an Apache Airflow dags folder. It copies new and changed .py files while preserving the relative directory layout, making it easy to promote Dags from a source repository into a running Airflow deployment.

Table of contents

Requirements

Component Version
Python 3.12+
Apache Airflow 3.2.2 or newer

Installing from PyPI

pip install apache-airflow-dagsyncer

Or with uv:

uv pip install apache-airflow-dagsyncer

Getting started

Sync Dags from a source directory into your Airflow dags folder:

apache-airflow-dagsyncer sync --source /path/to/dag-repo --dest $AIRFLOW_HOME/dags

Preview changes without copying anything:

apache-airflow-dagsyncer sync --source /path/to/dag-repo --dest $AIRFLOW_HOME/dags --dry-run

Usage

usage: apache-airflow-dagsyncer [-h] {sync} ...

Sync DAG files from a source location into an Airflow dags folder.

positional arguments:
  {sync}
    sync      Sync DAGs from source to destination

options:
  -h, --help  show this help message and exit

The sync command accepts:

Option Description
--source Source directory containing Dag files
--dest Destination Airflow dags folder
--dry-run Show what would be synced without copying

It can also be used programmatically:

from airflow.dagsyncer.syncer import sync_dags

sync_dags(source="/path/to/dag-repo", dest="/opt/airflow/dags", dry_run=True)

Contributing

Want to help build this project? Set up a development environment with uv:

git clone https://github.com/abhishekbhakat/apache-airflow-dagsyncer.git
cd apache-airflow-dagsyncer
uv sync
uv run apache-airflow-dagsyncer --help

License

Apache License, Version 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apache_airflow_dagsyncer-0.0.1rc1.tar.gz (3.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apache_airflow_dagsyncer-0.0.1rc1-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file apache_airflow_dagsyncer-0.0.1rc1.tar.gz.

File metadata

  • Download URL: apache_airflow_dagsyncer-0.0.1rc1.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for apache_airflow_dagsyncer-0.0.1rc1.tar.gz
Algorithm Hash digest
SHA256 70ba3d50915ae71d4a93fe452a5a6bc7d5e87ceb5c7c06c120669285b8451d8d
MD5 05df830dbd8768c8126fb68167fc7994
BLAKE2b-256 82ae4130d9153789933f92d829134a7bdeeb8c4a890371d08da0d8f1d37baca9

See more details on using hashes here.

File details

Details for the file apache_airflow_dagsyncer-0.0.1rc1-py3-none-any.whl.

File metadata

  • Download URL: apache_airflow_dagsyncer-0.0.1rc1-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for apache_airflow_dagsyncer-0.0.1rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 a4ffa4432fc573b467177d6cd54eb6d4988cbf035216bd6088a337ee752e08a4
MD5 7cd911354027bf2f2e3612732195eec8
BLAKE2b-256 2fcc8a5747313e7ca5ed5574526d1883585ba3b3a383887d5ea3af5e7c37875c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page