Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/satackey/action-google-drive
[CAUTION] This repository is not actively maintained. / GitHub Action to interact with Google Drive
https://github.com/satackey/action-google-drive
cloud-storage github-actions google-drive
Last synced: about 2 months ago
JSON representation
[CAUTION] This repository is not actively maintained. / GitHub Action to interact with Google Drive
- Host: GitHub
- URL: https://github.com/satackey/action-google-drive
- Owner: satackey
- License: apache-2.0
- Created: 2019-12-26T13:14:49.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-10-04T04:56:59.000Z (over 4 years ago)
- Last Synced: 2024-11-16T05:46:26.004Z (2 months ago)
- Topics: cloud-storage, github-actions, google-drive
- Language: Shell
- Homepage: https://hub.docker.com/r/satackey/action-google-drive
- Size: 37.1 KB
- Stars: 88
- Watchers: 4
- Forks: 15
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - satackey/action-google-drive - [CAUTION] This repository is not actively maintained. / GitHub Action to interact with Google Drive (Shell)
README
# Interact with Google Drive
This action uploads/downloads files to/from Google Drive
## Example
### Upload
```yaml
- name: Upload to Google Drive
uses: satackey/action-google-drive@v1
with:
skicka-tokencache-json: ${{ secrets.SKICKA_TOKENCACHE_JSON }}
upload-from: ./
upload-to: /path/to/upload# For those who set up Google Drive API client ID and secret themselves
google-client-id: ${{ secrets.GOOGLE_CLIENT_ID }}
google-client-secret: ${{ secrets.GOOGLE_CLIENT_SECRET }}
```### Donwload
```yaml
- name: Download from Google Drive
uses: satackey/action-google-drive@v1
with:
skicka-tokencache-json: ${{ secrets.SKICKA_TOKENCACHE_JSON }}
download-from: /path/to/download
download-to: ./# For those who set up Google Drive API client ID and secret themselves
google-client-id: ${{ secrets.GOOGLE_CLIENT_ID }}
google-client-secret: ${{ secrets.GOOGLE_CLIENT_SECRET }}
```## Get ready
This action uses [`skicka`](https://github.com/google/skicka) for uploading to Google Drive.
You need to generate token and register it with GitHub secrets.### How to generate token
#### Users already using skicka
In your GitHub repository → Settings → Secrets, register by entering `SKICKA_TOKENCACHE_JSON` for name and the content of `~/.skicka.tokencache.json` for value.
#### Users who have never used `skicka`
1. Setup Docker and execute following command.
```sh
docker run --rm -it --entrypoint "" satackey/skicka sh -c "skicka -no-browser-auth ls && cat /root/.skicka.tokencache.json"
```
1. Access the URL showed in the output
1. Grant access, paste code showed in the browser into the terminal.
1. In your GitHub repository → Settings → Secrets, register by entering `SKICKA_TOKENCACHE_JSON` for name and the content of `~/.skicka.tokencache.json` for value.```json
{"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"}
````##### Troubleshooting of sign in
As 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`.
The workaround is to set up the Google Drive API client ID and secret, and set them in skicka.[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?&sl=ja&tl=en&u=https%3A%2F%2Fqiita.com%2Fsatackey%2Fitems%2F34c7fc5bf77bd2f5c633)
Replace `xxxx-your-google-client-id-xx.googleusercontent.com` and `xxx_yourGoogleClientSecret_xxxx`, run the following command.
```shell
$ 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
```When the container starts, run the following command.
```
# sed -i -e "s/;clientid=YOUR_GOOGLE_APP_CLIENT_ID/clientid=$GOOGLE_CLIENT_ID/" ~/.skicka.config && sed -i -e "s/;clientsecret=YOUR_GOOGLE_APP_SECRET/clientsecret=$GOOGLE_CLIENT_SECRET/" ~/.skicka.config && skicka -no-browser-auth ls && cat /root/.skicka.tokencache.json
```Return to step 2 and proceed, and similarly **register your client ID and secret to the GitHub secret**.
## Inputs
- `skicka-tokencache-json` **Required**
The credentials of the account to upload, generated by `skicka`. (Contents of `~/.skicka.tokencache.json`)- `upload-from` optional
Upload source path. Default is the current directory.- `upload-to` **Required** for upload
Upload destination path.- `download-from` **Required** for download
Download source path.- `download-to` optional
Download destination path. Default is the current directory.- `google-client-id` optional
OAuth2.0 client ID of Google APIs when using skicka.
**Required** for those who set up Google Drive API client ID and secret themselves.
(Same for `google-client-secret` below)- `google-client-secret` optional
OAuth2.0 Client Secret of Google APIs when using skicka.- `remove-outdated` optional, default: `'true'`
Whether to delete files that are not local but exist on Google Drive, either `'true'` or `'false'`
> **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.## Contribution
PRs are accepted. Contributions to the [roadmap](#roadmap) are also welcome!If you are having trouble or feature request, [post new issue](https://github.com/satackey/action-google-drive/issues/new).
### Roadmap
- Support Windows / macOS runner ([#9](https://github.com/satackey/action-google-drive/issues/6))
- Embedded skicka metadata caching