{"id":13582231,"url":"https://github.com/MeltwaterArchive/drone-cache","last_synced_at":"2025-10-28T17:31:12.193Z","repository":{"id":37773905,"uuid":"137744218","full_name":"meltwater/drone-cache","owner":"meltwater","description":"A Drone plugin for caching current workspace files between builds to reduce your build times","archived":false,"fork":false,"pushed_at":"2025-02-05T22:37:00.000Z","size":879,"stargazers_count":344,"open_issues_count":32,"forks_count":83,"subscribers_count":100,"default_branch":"master","last_synced_at":"2025-02-06T15:13:27.366Z","etag":null,"topics":["automation-drone","aws","clientdata-no","coe-universal-solutions","department-130","department-460","drone","drone-plugin","droneio","golang","lifecycle-active","purpose-library","team-a-team","team-foundation","usage-public"],"latest_commit_sha":null,"homepage":"https://underthehood.meltwater.com/blog/2019/04/10/making-drone-builds-10-times-faster/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meltwater.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-18T11:36:07.000Z","updated_at":"2025-02-05T22:37:04.000Z","dependencies_parsed_at":"2022-07-07T22:12:39.114Z","dependency_job_id":"7fde593c-ec1b-4079-b636-364102c0b512","html_url":"https://github.com/meltwater/drone-cache","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltwater%2Fdrone-cache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltwater%2Fdrone-cache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltwater%2Fdrone-cache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meltwater%2Fdrone-cache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meltwater","download_url":"https://codeload.github.com/meltwater/drone-cache/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238686675,"owners_count":19513519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation-drone","aws","clientdata-no","coe-universal-solutions","department-130","department-460","drone","drone-plugin","droneio","golang","lifecycle-active","purpose-library","team-a-team","team-foundation","usage-public"],"created_at":"2024-08-01T15:02:30.663Z","updated_at":"2025-10-28T17:31:11.751Z","avatar_url":"https://github.com/meltwater.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# ⚠️ Deprecation Warning ⚠️\nThis repository has been deprecated and will no longer be maintained. Further development is happening on the official `drone-plugins` fork [here](https://github.com/drone-plugins/drone-meltwater-cache)\n\n# drone-cache\n[![Latest Release](https://img.shields.io/github/release/meltwater/drone-cache.svg?)](https://github.com/meltwater/drone-cache/releases/latest) [![Maintenance](https://img.shields.io/maintenance/yes/2022.svg)](https://github.com/meltwater/drone-cache/commits/master) ![GitHub](https://img.shields.io/github/license/meltwater/drone-cache) [![drone](https://cloud.drone.io/api/badges/meltwater/drone-cache/status.svg)](https://cloud.drone.io/meltwater/drone-cache) ![release](https://github.com/meltwater/drone-cache/workflows/release/badge.svg) ![snapshot](https://github.com/meltwater/drone-cache/workflows/snapshot/badge.svg)\n\n[![Go Doc](https://godoc.org/github.com/meltwater/drone-cache?status.svg)](http://godoc.org/github.com/meltwater/drone-cache) [![Go Code reference](https://img.shields.io/badge/code%20reference-go.dev-darkblue.svg)](https://pkg.go.dev/github.com/meltwater/drone-cache?tab=subdirectories) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/2713/badge)](https://bestpractices.coreinfrastructure.org/projects/2713) [![Go Report Card](https://goreportcard.com/badge/github.com/meltwater/drone-cache)](https://goreportcard.com/report/github.com/meltwater/drone-cache) [![codebeat badge](https://codebeat.co/badges/802c6149-ac2d-4514-8648-f618c63a8d9e)](https://codebeat.co/projects/github-com-meltwater-drone-cache-master)\n\n[![meltwater/drone-cache on DockerHub](https://img.shields.io/badge/docker-ready-blue.svg)](https://hub.docker.com/r/meltwater/drone-cache) [![DockerHub Pulls](https://img.shields.io/docker/pulls/meltwater/drone-cache.svg)](https://hub.docker.com/r/meltwater/drone-cache)\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"images/drone_gopher.png\" width=\"400\"\u003e\u003c/p\u003e\n\nA Drone plugin for caching current workspace files between builds to reduce your build times. `drone-cache` is a small CLI program, written in Go without any external OS dependencies (such as tar, etc).\n\nWith `drone-cache`, you can provide your **own cache key templates**, specify **archive format** (tar, tar.gz, etc) and you can use [**popular object storage**](#supported-storage-backends) as storage for your cached files, even better you can implement **your custom storage backend** to cover your use case.\n\nFor detailed usage information and a list of available options please take a look at [usage](#usage) and [examples](#example-usage-of-drone-cache). If you want to learn more about custom cache keys, see [cache key templates](docs/cache_key_templates.md).\n\nIf you want to learn more about the story behind `drone-cache`, you can read our blogpost [Making Drone Builds 10 Times Faster!](https://underthehood.meltwater.com/blog/2019/04/10/making-drone-builds-10-times-faster/)!\n\n## Supported Storage Backends\n\n* [AWS S3](https://aws.amazon.com/s3/)\n  * [Configuration](#)\n  * [Example](#)\n  * Other AWS API compatible stores:\n    * [Minio](https://min.io/)\n    * [Red Hat Ceph](https://www.redhat.com/en/technologies/storage/ceph)\n    * [IBM Object Store](https://www.ibm.com/cloud/object-storage)\n    * and many many others\n* [Azure Storage](https://azure.microsoft.com/en-us/services/storage/blobs/)\n  * [Configuration](#)\n  * [Example](#)\n* [Google Cloud Storage](https://cloud.google.com/storage/)\n  * [Configuration](#)\n  * [Example](#)\n* [Alibaba OSS Storage](https://www.alibabacloud.com/help/en/object-storage-service/)\n  * [Configuration](#)\n  * [Example](#)\n* or any mounted local volume\n  * [Configuration](#)\n  * [Example](#)\n\n## How does it work\n\n`drone-cache` stores mounted directories and files under a key at the specified backend (by default S3).\n\nUse this plugin to cache data that makes your builds faster. In the case of a _cache miss_ or an _empty cache_ restore it will fail silently in won't break your running pipeline.\n\nThe best example would be to use this with your package managers such as Mix, Bundler or Maven. After your initial download, you can build a cache and then you can restore that cache in your next build.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"images/diagram.png\" width=\"400\"\u003e\u003c/p\u003e\n\nWith restored dependencies from a cache, commands like `mix deps.get` will only need to download new dependencies, rather than re-download every package on each build.\n\n## Example Usage of drone-cache\n\nThe following example configuration file (`.drone.yml`) shows the most common use of drone-cache.\n\n[//]: # (TODO: Move to a dedicated directory in docs, per backend!)\n### Simple (with AWS S3 backend)\n\n```yaml\nkind: pipeline\nname: default\n\nsteps:\n  - name: restore-cache\n    image: meltwater/drone-cache\n    environment:\n      AWS_ACCESS_KEY_ID:\n        from_secret: aws_access_key_id\n      AWS_SECRET_ACCESS_KEY:\n        from_secret: aws_secret_access_key\n    pull: true\n    settings:\n      restore: true\n      cache_key: '{{ .Commit.Branch }}-{{ checksum \"go.mod\" }}' # default if ommitted is {{ .Commit.Branch }}\n      bucket: drone-cache-bucket\n      region: eu-west-1\n      mount:\n        - 'vendor'\n\n  - name: build\n    image: golang:1.18.4\n    pull: true\n    commands:\n      - make drone-cache\n\n  - name: rebuild-cache\n    image: meltwater/drone-cache\n    pull: true\n    environment:\n      AWS_ACCESS_KEY_ID:\n        from_secret: aws_access_key_id\n      AWS_SECRET_ACCESS_KEY:\n        from_secret: aws_secret_access_key\n    settings:\n      rebuild: true\n      cache_key: '{{ .Commit.Branch }}-{{ checksum \"go.mod\" }}' # default if ommitted is {{ .Commit.Branch }}\n      bucket: drone-cache-bucket\n      region: eu-west-1\n      mount:\n        - 'vendor'\n\n```\n\n### More Examples\n\n- examples for Drone, see [docs/examples/drone-1.0.md](docs/examples/drone.md)\n\n## Usage\n\n### Using executable (with CLI args)\n\n```txt\nNAME:\n   Drone cache plugin - Drone cache plugin\n\nUSAGE:\n   drone-cache [global options] command [command options] [arguments...]\n\nVERSION:\n   v1.4.0\n\nCOMMANDS:\n   help, h  Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --access-key value                    AWS access key [$PLUGIN_ACCESS_KEY, $AWS_ACCESS_KEY_ID, $CACHE_AWS_ACCESS_KEY_ID]\n   --acl value                           upload files with acl (private, public-read, ...) (default: \"private\") [$PLUGIN_ACL, $AWS_ACL]\n   --alibaba.access-key value            AlibabaOSS access key [$PLUGIN_ALIBABA_ACCESS_KEY, $ALIBABA_ACCESS_KEY_ID, $CACHE_ALIBABA_ACCESS_KEY_ID]\n   --alibaba.secret-key value            AlibabaOSS access secret [$PLUGIN_ALIBABA_ACCESS_SECRET, $ALIBABA_ACCESS_SECRET, $CACHE_ALIBABA_ACCESS_SECRET]\n   --archive-format value                archive format to use to store the cache directories (tar, gzip, zstd) (default: \"tar\") [$PLUGIN_ARCHIVE_FORMAT]\n   --azure.account-key value             Azure Blob Storage Account Key [$PLUGIN_ACCOUNT_KEY, $AZURE_ACCOUNT_KEY]\n   --azure.account-name value            Azure Blob Storage Account Name [$PLUGIN_ACCOUNT_NAME, $AZURE_ACCOUNT_NAME]\n   --azure.blob-container-name value     Azure Blob Storage container name [$PLUGIN_CONTAINER, $AZURE_CONTAINER_NAME]\n   --azure.blob-max-retry-requets value  Azure Blob Storage Max Retry Requests (default: 4) [$AZURE_BLOB_MAX_RETRY_REQUESTS]\n   --azure.blob-storage-url value        Azure Blob Storage URL (default: \"blob.core.windows.net\") [$AZURE_BLOB_STORAGE_URL]\n   --backend value                       cache backend to use in plugin (s3, filesystem, sftp, azure, gcs) (default: \"s3\") [$PLUGIN_BACKEND]\n   --backend.operation-timeout value     timeout value to use for each storage operations (default: 3m0s) [$PLUGIN_BACKEND_OPERATION_TIMEOUT, $BACKEND_OPERATION_TIMEOUT]\n   --bucket value                        AWS bucket name [$PLUGIN_BUCKET, $S3_BUCKET, $GCS_BUCKET]\n   --build.created value                 build created (default: 0) [$DRONE_BUILD_CREATED]\n   --build.deploy value                  build deployment target [$DRONE_DEPLOY_TO]\n   --build.event value                   build event (default: \"push\") [$DRONE_BUILD_EVENT]\n   --build.finished value                build finished (default: 0) [$DRONE_BUILD_FINISHED]\n   --build.link value                    build link [$DRONE_BUILD_LINK]\n   --build.number value                  build number (default: 0) [$DRONE_BUILD_NUMBER]\n   --build.started value                 build started (default: 0) [$DRONE_BUILD_STARTED]\n   --build.status value                  build status (default: \"success\") [$DRONE_BUILD_STATUS]\n   --cache-key value                     cache key to use for the cache directories [$PLUGIN_CACHE_KEY]\n   --commit.author.avatar value          git author avatar [$DRONE_COMMIT_AUTHOR_AVATAR]\n   --commit.author.email value           git author email [$DRONE_COMMIT_AUTHOR_EMAIL]\n   --commit.author.name value            git author name [$DRONE_COMMIT_AUTHOR]\n   --commit.branch value                 git commit branch (default: \"master\") [$DRONE_COMMIT_BRANCH]\n   --commit.link value                   git commit link [$DRONE_COMMIT_LINK]\n   --commit.message value                git commit message [$DRONE_COMMIT_MESSAGE]\n   --commit.ref value                    git commit ref (default: \"refs/heads/master\") [$DRONE_COMMIT_REF]\n   --commit.sha value                    git commit sha [$DRONE_COMMIT_SHA]\n   --compression-level value             compression level to use for gzip/zstd compression when archive-format specified as gzip/zstd\n                                             (check https://godoc.org/compress/flate#pkg-constants for available options for gzip\n                                             and https://pkg.go.dev/github.com/klauspost/compress/zstd#EncoderLevelFromZstd for zstd) (default: -1) [$PLUGIN_COMPRESSION_LEVEL]\n   --debug                               debug (default: false) [$PLUGIN_DEBUG, $DEBUG]\n   --encryption value                    server-side encryption algorithm, defaults to none. (AES256, aws:kms) [$PLUGIN_ENCRYPTION, $AWS_ENCRYPTION]\n   --endpoint value                      endpoint for the s3/cloud storage connection [$PLUGIN_ENDPOINT, $S3_ENDPOINT, $GCS_ENDPOINT]\n   --filesystem.cache-root value         local filesystem root directory for the filesystem cache (default: \"/tmp/cache\") [$PLUGIN_FILESYSTEM_CACHE_ROOT, $FILESYSTEM_CACHE_ROOT]\n   --gcs.acl value                       upload files with acl (private, public-read, ...) (default: \"private\") [$PLUGIN_GCS_ACL, $GCS_ACL]\n   --gcs.api-key value                   Google service account API key [$PLUGIN_API_KEY, $GCP_API_KEY]\n   --gcs.encryption-key value            server-side encryption key, must be a 32-byte AES-256 key, defaults to none\n                                             (See https://cloud.google.com/storage/docs/encryption for details.) [$PLUGIN_GCS_ENCRYPTION_KEY, $GCS_ENCRYPTION_KEY]\n   --gcs.json-key value                  Google service account JSON key [$PLUGIN_JSON_KEY, $GCS_CACHE_JSON_KEY]\n   --help, -h                            show help (default: false)\n   --local-root value                    local root directory to base given mount paths (default pwd [present working directory]) [$PLUGIN_LOCAL_ROOT]\n   --log.format value                    log format to use. ('logfmt', 'json') (default: \"logfmt\") [$PLUGIN_LOG_FORMAT, $LOG_FORMAT]\n   --log.level value                     log filtering level. ('error', 'warn', 'info', 'debug') (default: \"info\") [$PLUGIN_LOG_LEVEL, $LOG_LEVEL]\n   --mount value                         cache directories, an array of folders to cache  (accepts multiple inputs) [$PLUGIN_MOUNT]\n   --override                            override even if cache key already exists in backend (default: true) [$PLUGIN_OVERRIDE]\n   --path-style                          AWS path style to use for bucket paths. (true for minio, false for aws) (default: false) [$PLUGIN_PATH_STYLE, $AWS_PLUGIN_PATH_STYLE]\n   --prev.build.number value             previous build number (default: 0) [$DRONE_PREV_BUILD_NUMBER]\n   --prev.build.status value             previous build status [$DRONE_PREV_BUILD_STATUS]\n   --prev.commit.sha value               previous build sha [$DRONE_PREV_COMMIT_SHA]\n   --rebuild                             rebuild the cache directories (default: false) [$PLUGIN_REBUILD]\n   --region value                        AWS bucket region. (us-east-1, eu-west-1, ...) [$PLUGIN_REGION, $S3_REGION]\n   --remote-root value                   remote root directory to contain all the cache files created (default repo.name) [$PLUGIN_REMOTE_ROOT]\n   --remote.url value                    git remote url [$DRONE_REMOTE_URL]\n   --repo.avatar value                   repository avatar [$DRONE_REPO_AVATAR]\n   --repo.branch value                   repository default branch [$DRONE_REPO_BRANCH]\n   --repo.fullname value                 repository full name [$DRONE_REPO]\n   --repo.link value                     repository link [$DRONE_REPO_LINK]\n   --repo.name value                     repository name [$DRONE_REPO_NAME]\n   --repo.namespace value                repository namespace [$DRONE_REPO_NAMESPACE]\n   --repo.owner value                    repository owner (for Drone version \u003c 1.0) [$DRONE_REPO_OWNER]\n   --repo.private                        repository is private (default: false) [$DRONE_REPO_PRIVATE]\n   --repo.trusted                        repository is trusted (default: false) [$DRONE_REPO_TRUSTED]\n   --restore                             restore the cache directories (default: false) [$PLUGIN_RESTORE]\n   --role-arn value                      AWS IAM role ARN to assume [$PLUGIN_ASSUME_ROLE_ARN, $AWS_ASSUME_ROLE_ARN]\n   --s3-bucket-public value              Set to use anonymous credentials with public S3 bucket [$PLUGIN_S3_BUCKET_PUBLIC, $S3_BUCKET_PUBLIC]\n   --secret-key value                    AWS secret key [$PLUGIN_SECRET_KEY, $AWS_SECRET_ACCESS_KEY, $CACHE_AWS_SECRET_ACCESS_KEY]\n   --sftp.auth-method value              sftp auth method, defaults to none. (PASSWORD, PUBLIC_KEY_FILE) [$SFTP_AUTH_METHOD]\n   --sftp.cache-root value               sftp root directory [$SFTP_CACHE_ROOT]\n   --sftp.host value                     sftp host [$SFTP_HOST]\n   --sftp.password value                 sftp password [$PLUGIN_PASSWORD, $SFTP_PASSWORD]\n   --sftp.port value                     sftp port [$SFTP_PORT]\n   --sftp.public-key-file value          sftp public key file path [$PLUGIN_PUBLIC_KEY_FILE, $SFTP_PUBLIC_KEY_FILE]\n   --sftp.username value                 sftp username [$PLUGIN_USERNAME, $SFTP_USERNAME]\n   --skip-symlinks                       skip symbolic links in archive (default: false) [$PLUGIN_SKIP_SYMLINKS, $SKIP_SYMLINKS]\n   --sts-endpoint value                  Custom STS endpoint for IAM role assumption [$PLUGIN_STS_ENDPOINT, $AWS_STS_ENDPOINT]\n   --version, -v                         print the version (default: false)\n   --yaml.signed                         build yaml is signed (default: false) [$DRONE_YAML_SIGNED]\n   --yaml.verified                       build yaml is verified (default: false) [$DRONE_YAML_VERIFIED]\n```\n\n### Using Docker (with Environment variables)\n\n```bash\n$ docker run --rm \\\n      -v \"$(pwd)\":/app \\\n      -e DRONE_REPO=octocat/hello-world \\\n      -e DRONE_REPO_BRANCH=master \\\n      -e DRONE_COMMIT_BRANCH=master \\\n      -e PLUGIN_MOUNT=/app/node_modules \\\n      -e PLUGIN_RESTORE=false \\\n      -e PLUGIN_REBUILD=true \\\n      -e PLUGIN_BUCKET=\u003cbucket\u003e \\\n      -e AWS_ACCESS_KEY_ID=\u003ctoken\u003e \\\n      -e AWS_SECRET_ACCESS_KEY=\u003csecret\u003e \\\n      meltwater/drone-cache\n```\n\n## Development\n\n```txt\nUsage:\n  make \u003ctarget\u003e\n\nTargets:\n  setup          \t  Setups dev environment\n  drone-cache    \t  Runs drone-cache target\n  clean          \t  Cleans build resourcess\n  docs           \t  Generates docs\n  generate       \t  Generate documentation, website and yaml files,\n  vendor         \t  Updates vendored copy of dependencies\n  compress       \t  Creates compressed binary\n  container      \t  Builds drone-cache docker image with latest tag\n  container-push \t  Pushes latest $(CONTAINER_REPO) image to repository\n  test           \t  Runs tests\n  test-integration\t  Runs integration tests\n  test-unit      \t  Runs unit tests\n  lint           \t  Runs golangci-lint analysis\n  fix            \t  Runs golangci-lint fix\n  format         \t  Runs gofmt\n  help           \t  Shows this help message\n```\n\n## Releases\n\nRelease management handled by the CI pipeline. When you create a tag on `master` branch, CI handles the rest.\n\nYou can find released artifacts (binaries, code, archives) under [releases](https://github.com/meltwater/drone-cache/releases).\n\nYou can find released images at [DockerHub](https://hub.docker.com/r/meltwater/drone-cache/tags).\n\n**PLEASE DO NOT INTRODUCE BREAKING CHANGES**\n\n\u003e Keep in mind that users usually use the image tagged with `latest` in their pipeline, please make sure you do not interfere with their working workflow. Latest stable releases will be tagged with the `latest`.\n\n## Versioning\n\n`drone-cache` uses [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/meltwater/drone-cache/tags).\n\nAs the versioning scheme dictates, `drone-cache` respects _backward compatibility_ within the major versions. However, the project only offers guarantees regarding the command-line interface (flags and environment variables). **Any exported public package can change its API.**\n\n## Authors and Acknowledgement\n\nSee the list of [all contributors](https://github.com/meltwater/drone-cache/graphs/contributors).\n\n- [@kakkoyun](https://github.com/kakkoyun) - Thank you Kemal for bringing drone-cache to life, and building most of the initial version.\n- [@AdamGlazerMW](https://github.com/AdamGlazerMW) - Special thanks to Adam for the amazing artwork!\n- [@dim](https://github.com/dim) - Thanks for the [original work](https://github.com/bsm/drone-s3-cache) that inspired drone-cache!\n\n### Inspiration\n\n- [github.com/bsm/drone-s3-cache](https://github.com/bsm/drone-s3-cache) (original work)\n- [github.com/Drillster/drone-volume-cache](https://github.com/Drillster/drone-volume-cache)\n- [github.com/drone/drone-cache-lib](https://github.com/drone/drone-cache-lib)\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) to understand how to submit pull requests to us, and also see our [code of conduct](CODE_OF_CONDUCT.md).\n\n## Future work\n\nAll ideas for new features and bug reports will be kept in [github.com/meltwater/drone-cache/issues](https://github.com/meltwater/drone-cache/issues).\n\nOne bigger area of future investment is to add a couple of [new storage backends](https://github.com/meltwater/drone-cache/labels/storage-backend) for caching the workspace files.\n\n## License and Copyright\n\nThis project is licensed under the [Apache License 2.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMeltwaterArchive%2Fdrone-cache","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMeltwaterArchive%2Fdrone-cache","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMeltwaterArchive%2Fdrone-cache/lists"}