Git PushDashboards

Git PushDashboards

Certified

Push dashboards to Git

Commits saved dashboards to Git under gitDirectory (default _dashboards), filtered by glob patterns. Creates the branch if missing; supports dry-run diff generation.

yaml
type: io.kestra.plugin.git.PushDashboards

Manually push a single dashboard to Git if the input push is set to true.

yaml
id: push_dashboards
namespace: prod

inputs:
  - id: push
    type: BOOL
    defaults: false

tasks:
  - id: if
    type: io.kestra.plugin.core.flow.If
    condition: "{{ inputs.push == true}}"
    then:
      - id: commit_and_push
        type: io.kestra.plugin.git.PushDashboards
        dashboards: mydashboard # if you prefer templating, you can use "{{ flow.id }}"
        url: https://github.com/kestra-io/scripts
        username: git_username
        password: "{{ secret('GITHUB_ACCESS_TOKEN') }}"
        branch: main
        commitMessage: "add mydashboard from {{ flow.namespace ~ '.' ~ flow.id }}"
Properties

Commit author email

If null, no author is set.

Commit author name

Defaults to username when empty.

Defaultmain

Branch to push dashboards

Defaults to main; created if it does not exist.

Clone submodules

Default false; enable to fetch and initialize nested submodules.

DefaultAdd dashboards from flow: {{ flow.id }}

Git commit message

Default10000

HTTP connect timeout (ms)

Default 10000 ms.

Default**

Dashboards to include

Glob pattern(s) matching dashboard IDs; defaults to all (**).

Defaulttrue

Delete removed resources

If true (default), removes Git files that no longer exist in Kestra.

Defaultfalse

Dry run only

When true, writes a diff file without pushing. Default false pushes immediately.

Git configuration overrides

Map of git config keys and values applied after clone, e.g.:

  • core.fileMode: false (ignore permission flips)
  • core.autocrlf: false (preserve line endings)
Default_dashboards

Dashboard destination directory

Relative path inside the repository; defaults to _dashboards.

Disable proxy for HTTP

When true, forces direct connections instead of using the JVM proxy settings.

Passphrase for privateKey

Password or personal access token

Supplies HTTP credentials. When a PAT is used, pushes are recorded under that PAT’s user without needing authorName and authorEmail.

**GitHub PAT permissions required: **

  • Fine-grained PAT: Contents: Read (clone/fetch) or Contents: Read and Write (push), plus Metadata: Read (mandatory base permission). Add Workflows: Read and Write when pushing .github/workflows/ files.
  • Classic PAT: repo scope covers all read/write operations; add workflow when pushing workflow files.

Reference (ref) of the pluginDefaults to apply to this task.

PEM private key

PEM-formatted private key matching a public key registered on the Git server. Generate with ssh-keygen -t ecdsa -b 256 -m PEM.

Default60000

HTTP read timeout (ms)

Default 60000 ms.

Extra trusted CA PEM path

Optional PEM-encoded CA bundle added to the JVM truststore; equivalent to git config http.sslCAInfo <path> for self-signed or internal CAs.

Repository URL

HTTP(S) or SSH URI used for clone and push operations.

Username or organization

Used for HTTP basic authentication and as a fallback commit author.