Skip to content

PlasmoHQ/gcp-refresh-token

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Google Cloud Platform Refresh Token

gcp-refresh-token is a cli util from plasmo to retrieve a refresh token as specified in Google's OAuth 2.0 Refresh Token Flow.

The key usecase is to leverage GCP in an external CI pipeline. The original goal of this package is to resolve chrome-webstore-api's #12, with further discussion here. However, it can be extended for other usecases (by adding an option for more scopes).

Usage

  1. Configure a GCP project for the CI process
  2. Create an OAuth client key following this guide.
  3. Download the JSON key file and store it as key.json file.
  4. Run gcp-refresh-token, replacing pnpm dlx with your preferred package manager equivalent (npx or yarn dlx):
## *** 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, simply copy it:

{
  "installed": {},
  "chrome": {
    "clientId": "etc",
    "clientSecret": "etc",
    "refreshToken": "etc"
  }
}

You can also install and use it globally:

pnpm add -g gcp-refresh-token

gcp-refresh-token # or gcprt

For custom scope, add a scope property to the key.json:

{
  "installed": {},
  "scope": ["https://www.googleapis.com/auth/chromewebstore"]
}

Development

Terminal 1:

# 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!

Acknowledgment

License

MIT 🖖 Plasmo Corp.