Search before asking
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:
- Version history — every resource change is a Git commit with a diffable audit trail
- GitOps workflow — resources managed through pull requests / code review
- 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
Search before asking
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:
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