Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/plasmohq/gcp-refresh-token
A cli util to retrieve a Google OAuth 2.0 refresh token
https://github.com/plasmohq/gcp-refresh-token
browser-extension chrome-extension chrome-webstore gcp refresh-token
Last synced: 2 months ago
JSON representation
A cli util to retrieve a Google OAuth 2.0 refresh token
- Host: GitHub
- URL: https://github.com/plasmohq/gcp-refresh-token
- Owner: PlasmoHQ
- License: mit
- Created: 2022-04-11T19:07:01.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-24T09:48:33.000Z (11 months ago)
- Last Synced: 2024-10-04T21:12:22.665Z (3 months ago)
- Topics: browser-extension, chrome-extension, chrome-webstore, gcp, refresh-token
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/gcp-refresh-token
- Size: 109 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
# Google Cloud Platform Refresh Token
`gcp-refresh-token` is a cli util from [plasmo](https://www.plasmo.com/) to retrieve a refresh token as specified in [Google's OAuth 2.0 Refresh Token Flow](https://developers.google.com/identity/protocols/oauth2/native-app#programmatic-extraction).
The key usecase is to leverage GCP in an external CI pipeline. The original goal of this package is to resolve [`chrome-webstore-api`](https://github.com/PlasmoHQ/chrome-webstore-api)'s [#12](https://github.com/PlasmoHQ/chrome-webstore-api/issues/12), with further discussion [here](https://github.com/fregante/chrome-webstore-upload/issues/59). However, it can be extended for other usecases (by adding an option for more scopes).
## Usage
1. [Configure a GCP project](https://developer.chrome.com/docs/webstore/using_webstore_api/#enable-cws-api) for the CI process
1. Create an OAuth client key following [this guide](https://developer.chrome.com/docs/webstore/using_webstore_api/#get-keys).
1. Download the JSON key file and store it as `key.json` file.
1. Run `gcp-refresh-token`, replacing `pnpm dlx` with your preferred package manager equivalent (`npx` or `yarn dlx`):```sh
## *** DO NOT PUSH key.json TO GIT ***
# If no key file is found, it will generate a sample key.json file for you to fill out or replace
pnpm dlx gcp-refresh-token
```The resulted refresh token will be written into the `key.json` under the `chrome` property, ready to be used in your CI pipeline. If you use [`bpp`](https://www.browser.market), simply copy it:
```json
{
"installed": {},
"chrome": {
"clientId": "etc",
"clientSecret": "etc",
"refreshToken": "etc"
}
}
```> You can also install and use it globally:
```sh
pnpm add -g gcp-refresh-tokengcp-refresh-token # or gcprt
```> For custom scope, add a `scope` property to the `key.json`:
```json
{
"installed": {},
"scope": ["https://www.googleapis.com/auth/chromewebstore"]
}
```## Development
### Terminal 1:
```sh
# install deps
pnpm i# link global
pnpm link --global# run dev server
pnpm dev
```### Terminal 2:
```
gcprt help
```## Publish process
1. Commit any changes to the repository.
2. `pnpm version patch | minor | major`
3. `pnpm publish`# Support
Join the [Discord channel](https://discord.browser.market)!
# Acknowledgment
- [@daneroo/get-me-a-googleapi-refresh-token](https://github.com/daneroo/get-me-a-googleapi-refresh-token)
# License
[MIT](./LICENSE) 🖖 [Plasmo Corp.](https://plasmo.com)