{"id":14069678,"url":"https://github.com/satackey/action-google-drive","last_synced_at":"2026-03-09T13:45:17.791Z","repository":{"id":65161638,"uuid":"230266894","full_name":"satackey/action-google-drive","owner":"satackey","description":"[CAUTION] This repository is not actively maintained. / GitHub Action to interact with Google Drive","archived":false,"fork":false,"pushed_at":"2020-10-04T04:56:59.000Z","size":38,"stargazers_count":87,"open_issues_count":9,"forks_count":15,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-27T01:57:21.726Z","etag":null,"topics":["cloud-storage","github-actions","google-drive"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/satackey/action-google-drive","language":"Shell","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/satackey.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}},"created_at":"2019-12-26T13:14:49.000Z","updated_at":"2025-06-05T09:07:30.000Z","dependencies_parsed_at":"2023-01-13T15:44:30.088Z","dependency_job_id":null,"html_url":"https://github.com/satackey/action-google-drive","commit_stats":{"total_commits":44,"total_committers":3,"mean_commits":"14.666666666666666","dds":"0.11363636363636365","last_synced_commit":"c46be37902cfb97286afc2e064a498aa32d49f7c"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/satackey/action-google-drive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satackey%2Faction-google-drive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satackey%2Faction-google-drive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satackey%2Faction-google-drive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satackey%2Faction-google-drive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satackey","download_url":"https://codeload.github.com/satackey/action-google-drive/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satackey%2Faction-google-drive/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269338063,"owners_count":24400179,"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","status":"online","status_checked_at":"2025-08-07T02:00:09.698Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cloud-storage","github-actions","google-drive"],"created_at":"2024-08-13T07:07:08.138Z","updated_at":"2026-03-09T13:45:17.751Z","avatar_url":"https://github.com/satackey.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# Interact with Google Drive\n\nThis action uploads/downloads files to/from Google Drive\n\n## Example\n\n### Upload\n\n```yaml\n- name: Upload to Google Drive\n  uses: satackey/action-google-drive@v1\n  with:\n    skicka-tokencache-json: ${{ secrets.SKICKA_TOKENCACHE_JSON }}\n    upload-from: ./\n    upload-to: /path/to/upload\n\n    # For those who set up Google Drive API client ID and secret themselves\n    google-client-id: ${{ secrets.GOOGLE_CLIENT_ID }}\n    google-client-secret: ${{ secrets.GOOGLE_CLIENT_SECRET }}\n```\n\n### Donwload\n\n```yaml\n- name: Download from Google Drive\n  uses: satackey/action-google-drive@v1\n  with:\n    skicka-tokencache-json: ${{ secrets.SKICKA_TOKENCACHE_JSON }}\n    download-from: /path/to/download\n    download-to: ./\n\n    # For those who set up Google Drive API client ID and secret themselves\n    google-client-id: ${{ secrets.GOOGLE_CLIENT_ID }}\n    google-client-secret: ${{ secrets.GOOGLE_CLIENT_SECRET }}\n```\n\n## Get ready\n\nThis action uses [`skicka`](https://github.com/google/skicka) for uploading to Google Drive.\nYou need to generate token and register it with GitHub secrets.\n\n### How to generate token\n\n#### Users already using skicka\n\nIn your GitHub repository → Settings → Secrets, register by entering `SKICKA_TOKENCACHE_JSON` for name and the content of `~/.skicka.tokencache.json` for value.\n\n#### Users who have never used `skicka`\n\n1. Setup Docker and execute following command.\n    ```sh\n    docker run --rm -it --entrypoint \"\" satackey/skicka sh -c \"skicka -no-browser-auth ls \u0026\u0026 cat /root/.skicka.tokencache.json\"\n    ```\n1. Access the URL showed in the output\n1. Grant access, paste code showed in the browser into the terminal.\n1. In your GitHub repository → Settings → Secrets, register by entering `SKICKA_TOKENCACHE_JSON` for name and the content of `~/.skicka.tokencache.json` for value.\n\n    ```json\n    {\"ClientId\":\"xxx-xxxxx.apps.googleusercontent.com\",\"access_token\":\"xxxx.xx-xxxxxxxxx\",\"token_type\":\"Bearer\",\"refresh_token\":\"x//xxxxxxx-xxxxxxx\",\"expiry\":\"2020-01-03T06:11:01.3298117Z\"}\n    ````\n\n##### Troubleshooting of sign in\n\nAs of Jan. 2, 2020, for the accounts that sign in to skicka for the first time, may have a problem of being displayed as `Sign in with Google temporarily disabled for this app`.\nThe workaround is to set up the Google Drive API client ID and secret, and set them in skicka.\n\n[Follow this article (japanese only)](https://qiita.com/satackey/items/34c7fc5bf77bd2f5c633) to set up a client ID and secret. [See translated by Google](https://translate.google.com/translate?\u0026sl=ja\u0026tl=en\u0026u=https%3A%2F%2Fqiita.com%2Fsatackey%2Fitems%2F34c7fc5bf77bd2f5c633)\n\nReplace `xxxx-your-google-client-id-xx.googleusercontent.com` and `xxx_yourGoogleClientSecret_xxxx`, run the following command.\n\n```shell\n$ docker run -e GOOGLE_CLIENT_ID=xxxx-your-google-client-id-xx.googleusercontent.com -e GOOGLE_CLIENT_SECRET=xxx_yourGoogleClientSecret_xxxx --rm -it --entrypoint \"ash\" satackey/skicka\n```\n\nWhen the container starts, run the following command.\n```\n# sed -i -e \"s/;clientid=YOUR_GOOGLE_APP_CLIENT_ID/clientid=$GOOGLE_CLIENT_ID/\" ~/.skicka.config \u0026\u0026 sed -i -e \"s/;clientsecret=YOUR_GOOGLE_APP_SECRET/clientsecret=$GOOGLE_CLIENT_SECRET/\" ~/.skicka.config \u0026\u0026 skicka -no-browser-auth ls \u0026\u0026 cat /root/.skicka.tokencache.json\n```\n\nReturn to step 2 and proceed, and similarly **register your client ID and secret to the GitHub secret**.\n\n## Inputs\n\n- `skicka-tokencache-json` **Required**  \n    The credentials of the account to upload, generated by `skicka`. (Contents of `~/.skicka.tokencache.json`)\n\n- `upload-from` optional  \n    Upload source path. Default is the current directory.\n\n- `upload-to` **Required** for upload  \n    Upload destination path.\n\n- `download-from` **Required** for download  \n    Download source path.\n\n- `download-to` optional  \n    Download destination path. Default is the current directory.\n\n- `google-client-id` optional  \n    OAuth2.0 client ID of Google APIs when using skicka.  \n    **Required** for those who set up Google Drive API client ID and secret themselves.\n    (Same for `google-client-secret` below)\n\n- `google-client-secret` optional  \n    OAuth2.0 Client Secret of Google APIs when using skicka.\n\n- `remove-outdated` optional, default: `'true'`  \n    Whether to delete files that are not local but exist on Google Drive, either `'true'` or `'false'`  \n    \u003e **Note**: It is recommended to turn it off when performing operations involving large files, because it detects files that do not exist locally and downloads them.\n\n## Contribution\nPRs are accepted. Contributions to the [roadmap](#roadmap) are also welcome!\n\nIf you are having trouble or feature request, [post new issue](https://github.com/satackey/action-google-drive/issues/new).\n\n### Roadmap\n- Support Windows / macOS runner ([#9](https://github.com/satackey/action-google-drive/issues/6))\n- Embedded skicka metadata caching\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatackey%2Faction-google-drive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatackey%2Faction-google-drive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatackey%2Faction-google-drive/lists"}