Skip to content

Repository files navigation

Kestra workflow orchestrator

Event-Driven Declarative Orchestrator

Last Version License Github star
Kestra infinitely scalable orchestration and scheduling platform Slack

twitter linkedin youtube


Get started in 3 minutes with Kestra

Get started with Kestra in 3 minutes.

Kestra Git plugin

Why

  • What user problem does this solve? Teams need to clone, fetch, and interact with Git repositories from orchestrated workflows instead of relying on manual console work, ad hoc scripts, or disconnected schedulers.
  • Why would a team adopt this plugin in a workflow? It keeps Git steps in the same Kestra flow as upstream preparation, approvals, retries, notifications, and downstream systems.
  • What operational/business outcome does it enable? It reduces manual handoffs and fragmented tooling while improving reliability, traceability, and delivery speed for processes that depend on Git.

What

  • Provides plugin components under io.kestra.plugin.git.
  • Includes classes such as SyncFlow, Sync, SyncNamespaceFiles, PushNamespaceFiles.

Dashboards

Dashboard tasks (SyncDashboards, PushDashboards) moved to the Git EE plugin in Kestra 2.0.0, because dashboards are an Enterprise Edition feature. TenantSync no longer syncs the _global/dashboards directory on OSS.

Source of truth overrides

TenantSync and NamespaceSync set their sync direction with sourceOfTruth (KESTRA pushes Kestra state to Git, GIT applies Git state into Kestra). sourceOfTruthOverrides lets you set the direction per resource kind, so one run can push one kind to Git while pulling the other kind from Git in the same execution. It currently exposes flows and namespaceFiles; any field left unset falls back to sourceOfTruth.

- id: sync
  type: io.kestra.plugin.git.TenantSync
  sourceOfTruth: KESTRA          # flows: Kestra -> Git
  sourceOfTruthOverrides:
    namespaceFiles: GIT          # namespace files: Git -> Kestra
  whenMissingInSource: KEEP
  branch: main
  url: https://github.com/my-org/my-repo

whenMissingInSource stays a single global setting, but its effect flips per kind with the resolved source. With sourceOfTruth: KESTRA, sourceOfTruthOverrides.namespaceFiles: GIT, and whenMissingInSource: DELETE, a Namespace File present in Kestra but absent from Git is deleted from Kestra (Git is the source for files), while a flow present in Git but absent from Kestra is deleted from Git (Kestra is the source for flows). protectedNamespaces still guards every deletion regardless of direction.

Documentation

License

Apache 2.0 © Kestra Technologies

Stay up to date

We release new versions every month. Give the main repository a star to stay up to date with the latest releases and get notified about future updates.

Star the repo

About

Plugin to sync your code from Git, push your workflow code and namespace files from Kestra to Git, or clone custom Git repositories at runtime

Topics

Resources

Stars

10 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages