eltPulse is Git-native: pipeline definitions generate real artifacts you can copy, review in PRs, or sync to a connected GitHub repository. Manage connections on Repositories in the app.
Customer repos use a dedicated top-level folder so pipeline code stays distinct from application code:
repo/
eltpulse/
pipelines/
my_pipeline/
pipeline.py # or replication.yaml (Sling)
config.yaml
eltpulse_workspace.yaml # optional per-repo aggregateConnect GitHub under Repositories — managed org provisioning (default) or optional BYO OAuth when enabled by your operator. Set default owner, repository, and branch for pushes.
When GitHub is connected, pipeline YAML declarations can auto-push on every save (Pro plan and above). The push uses the same declarative format as POST /api/elt/pipelines/declaration — idempotent for GitOps workflows. Disable with ELTPULSE_AUTO_GIT_PUSH=false in server env if you prefer manual sync only.
Manual Sync all and per-pipeline push remain available on the Repositories page. Asset history can surface recent GitHub commits for linked pipelines.
Generated eltpulse_workspace.yaml describes scheduling hints, retries, and a logical code location — consumable by eltPulse cron or external orchestrators (Airflow, Prefect, GitHub Actions).
Without GitHub, open Code on any pipeline row to copy artifacts into whatever repo your runners use. You always own the generated Python/YAML.