Skip to content

[DSIP-109][Storage] Add Git repository as a resource storage backend #18350

Description

@eye-gu

Search before asking

  • I had searched in the DSIP and found no similar DSIP.

Motivation

DolphinScheduler currently supports LOCAL, HDFS, S3, OSS, GCS, ABS, OBS, COS as resource storage backends. These are all object/file storage systems. In many scenarios, users want to store and version-control workflow resources (shell scripts, SQL files, Python files, UDFs) directly in a Git repository, gaining:


  1. Version history — every resource change is a Git commit with a diffable audit trail
  2. GitOps workflow — resources managed through pull requests / code review
  3. Git-native CI/CD integration — resources can trigger CI pipelines natively

This DSIP proposes adding a new storage plugin module dolphinscheduler-storage-git that implements the existing StorageOperator SPI, supporting GitHub, Gitea, and GitLab as storage backends via their REST Contents/Files APIs.

Design Detail

Implements StorageOperator. Maps DS file operations (create/exists/delete/copy/upload/download/list) to Git API calls via REST.

github:
https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api?apiVersion=2026-03-10
https://docs.github.com/en/rest/repos/contents?apiVersion=2026-03-10
gitlab:
https://docs.gitlab.com/api/rest/#authentication
https://docs.gitlab.com/api/repository_files/
gitea:
https://docs.gitea.com/development/api-usage
https://docs.gitea.com/api/1.25/#tag/repository/operation/repoMigrate

I can submit a PR!

Compatibility, Deprecation, and Migration Plan

This is a purely additive feature

Test Plan

GitLab/gitea can use container test.

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions