Hi community,

I would like to propose DSIP-109: Add Git repository as a new resource
storage backend.

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:

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 already created a GitHub Issue for my proposal, which you can see in
https://github.com/apache/dolphinscheduler/issues/18350.

Looking forward to any feedback on this thread.

Best regards,
eye-gu

Reply via email to