{"id":17834801,"url":"https://github.com/animmouse/setup-rclone","last_synced_at":"2025-05-08T20:58:00.765Z","repository":{"id":44541093,"uuid":"435055429","full_name":"AnimMouse/setup-rclone","owner":"AnimMouse","description":"Setup/Install Rclone for GitHub Actions","archived":false,"fork":false,"pushed_at":"2025-04-17T16:35:20.000Z","size":63,"stargazers_count":49,"open_issues_count":0,"forks_count":15,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-08T20:57:53.676Z","etag":null,"topics":["action","actions","drive","github-actions","google-drive","rclone","s3"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/setup-rclone-action","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AnimMouse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-12-05T02:28:01.000Z","updated_at":"2025-05-07T18:37:56.000Z","dependencies_parsed_at":"2023-02-09T02:01:29.214Z","dependency_job_id":"2f4f9734-de14-4f87-b4c6-44cfb8554cf9","html_url":"https://github.com/AnimMouse/setup-rclone","commit_stats":{"total_commits":28,"total_committers":1,"mean_commits":28.0,"dds":0.0,"last_synced_commit":"dd6e09ce02cd55a53cf84a8c21207f93440ee413"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnimMouse%2Fsetup-rclone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnimMouse%2Fsetup-rclone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnimMouse%2Fsetup-rclone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnimMouse%2Fsetup-rclone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnimMouse","download_url":"https://codeload.github.com/AnimMouse/setup-rclone/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253149569,"owners_count":21861719,"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":["action","actions","drive","github-actions","google-drive","rclone","s3"],"created_at":"2024-10-27T20:11:27.707Z","updated_at":"2025-05-08T20:58:00.759Z","avatar_url":"https://github.com/AnimMouse.png","language":"PowerShell","readme":"# Setup Rclone for GitHub Actions\nSetup [Rclone](https://rclone.org) on GitHub Actions to use `rclone`.\n\nThis action installs [Rclone](https://rclone.org) for use in actions by installing it on tool cache using [AnimMouse/tool-cache](https://github.com/AnimMouse/tool-cache).\n\nThis action is implemented as a [composite](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action) action.\n\n## Usage\nTo use `rclone`, run this action before `rclone`.\n\nEncode the rclone.conf file in Base64 using this command `base64 -w 0 rclone.conf` and paste it to `RCLONE_CONFIG` secret.\n\n### Single command\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    with:\n      rclone_config: ${{ secrets.RCLONE_CONFIG }}\n      \n  - run: rclone copy source:sourcepath dest:destpath\n```\nFor bare remote, use single quotes to stop the YAML parser from interpreting the remote as a key-value pair.\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    with:\n      rclone_config: ${{ secrets.RCLONE_CONFIG }}\n      \n  - run: 'rclone copy source: dest:'\n```\n\n### Multiple commands\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    with:\n      rclone_config: ${{ secrets.RCLONE_CONFIG }}\n      \n  - run: |\n      rclone copy source:sourcepath dest:destpath\n      rclone copy source: dest:\n```\nFor bare remote in pipes, there is no need to use single quotes as YAML parser does not interpret the remote as a key-value pair.\n\n### Encrypted Rclone config\nPaste your Rclone config pass to `RCLONE_CONFIG_PASS` secret.\n\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    with:\n      rclone_config: ${{ secrets.RCLONE_CONFIG }}\n      \n  - run: rclone copy source:sourcepath dest:destpath\n    env:\n      RCLONE_CONFIG_PASS: ${{ secrets.RCLONE_CONFIG_PASS }}\n```\n\n### Config-less operation\nYou can use Rclone without a config file by using command-line options, environment variables, or connection strings.\n\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    \n  - run: 'rclone lsd --http-url https://pub.rclone.org :http:'\n    \n  - run: 'rclone lsd :http:'\n    env:\n      RCLONE_HTTP_URL: https://pub.rclone.org\n      \n  - run: 'rclone lsd \":http,url='https://pub.rclone.org':\"'\n```\n\n### Plain text Rclone config\nYou can disable Base64 so that you can input the config file in plain text. This allows you to place the config file directly in YAML or get the config file from outputs.\n\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    with:\n      rclone_config: |\n        [rclone-test-remote]\n        type = http\n        url = https://pub.rclone.org\n      disable_base64: true\n      \n  - run: 'rclone lsd rclone-test-remote:'\n```\n\n### Compressed Rclone config\nGitHub Actions secrets are limited to 48 KB in size. If you have a large Rclone config file, you can compress it first using zstd.\n\nCompress and encode the rclone.conf file using this command `zstd -c rclone.conf | base64 -w 0` and paste it to `RCLONE_CONFIG` secret.\n\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    with:\n      rclone_config: ${{ secrets.RCLONE_CONFIG }}\n      zstd_config: true\n      \n  - run: rclone copy source:sourcepath dest:destpath\n```\n\n### Service account file\nTo prevent the Rclone config file from becoming too large since you have a lot of remotes that uses the same service account file, use the `AnimMouse/setup-rclone/service-account-file@v1` action to add the service account file inside the Rclone config directory.\n\nEncode the service-account-file.json file in Base64 using this command `base64 -w 0 service-account-file.json` and paste it to `SERVICE_ACCOUNT_FILE` secret. And declare the service account file on the Rclone config like this `service_account_file = $RCLONE_CONFIG_DIR/service-account-file.json`.\n\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    with:\n      rclone_config: ${{ secrets.RCLONE_CONFIG }}\n      \n  - name: Add Rclone service account file\n    uses: AnimMouse/setup-rclone/service-account-file@v1\n    with:\n      service_account_filename: service-account-file.json\n      service_account_file: ${{ secrets.SERVICE_ACCOUNT_FILE }}\n      \n  - run: rclone copy source:sourcepath dest:destpath\n```\n\nYou can also declare multiple service account files; just run the `AnimMouse/setup-rclone/service-account-file@v1` action multiple times, and use different service account filename and different secret name.\n\n### Update token\nSome tokens in Rclone config have expiration, which means they have to be refreshed, or else they will expire and it will not work anymore. To prevent expiration, Rclone automatically refreshes the tokens as needed. To update those tokens in GitHub secrets, use the `AnimMouse/setup-rclone/update-config@v1` action to update the Rclone config.\n\nThis requires a fine-grained personal access token that has read and write access to the secrets scope in the current repository to update the secret as the default `GITHUB_TOKEN` does not have access to the secrets scope.\n\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    with:\n      rclone_config: ${{ secrets.RCLONE_CONFIG }}\n      \n  - run: rclone copy source:sourcepath dest:destpath\n    \n  - name: Update Rclone config\n    uses: AnimMouse/setup-rclone/update-config@v1\n    with:\n      rclone_config_secret_name: RCLONE_CONFIG\n      token: ${{ secrets.GH_PAT }}\n```\n\n### Specific version\nYou can specify the version you want. By default, this action downloads the latest version if the version is not specified.\n\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    with:\n      rclone_config: ${{ secrets.RCLONE_CONFIG }}\n      version: v1.69.0\n```\n\n### GitHub token\nThis action automatically uses a GitHub token in order to authenticate with the GitHub API and avoid rate limiting. You can also specify your own read-only fine-grained personal access token.\n\n```yaml\nsteps:\n  - name: Setup Rclone\n    uses: AnimMouse/setup-rclone@v1\n    with:\n      rclone_config: ${{ secrets.RCLONE_CONFIG }}\n      token: ${{ secrets.GH_PAT }}\n```\n\n#### Similar actions\n1. [NiceLabs/rclone-action](https://github.com/NiceLabs/rclone-action)\n2. [wei/rclone](https://github.com/wei/rclone)\n3. [andreiio/rclone-action](https://github.com/andreiio/rclone-action)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanimmouse%2Fsetup-rclone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanimmouse%2Fsetup-rclone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanimmouse%2Fsetup-rclone/lists"}