Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cardinalby/webext-buildtools-chrome-webstore-publish-action
Publish your WebExtension on Chrome Web Store
https://github.com/cardinalby/webext-buildtools-chrome-webstore-publish-action
Last synced: about 5 hours ago
JSON representation
Publish your WebExtension on Chrome Web Store
- Host: GitHub
- URL: https://github.com/cardinalby/webext-buildtools-chrome-webstore-publish-action
- Owner: cardinalby
- License: mit
- Created: 2020-07-05T14:52:52.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-03-15T14:51:57.000Z (8 months ago)
- Last Synced: 2024-10-29T17:13:47.687Z (9 days ago)
- Language: TypeScript
- Size: 855 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Node.js CI](https://github.com/cardinalby/webext-buildtools-chrome-webstore-publish-action/workflows/build-test/badge.svg)
# Publish your uploaded WebExtension at Chrome Web Store
Publishes your WebExtension after you have uploaded it to the store. To automate uploading look at
[webext-buildtools-chrome-webstore-upload-action](https://github.com/cardinalby/webext-buildtools-chrome-webstore-upload-action)Based on [ChromeWebstoreBuilder](https://www.npmjs.com/package/webext-buildtools-chrome-webstore-builder)
package.## Inputs
* `extensionId` **Required**
Your extension id in Chrome Web Store* To allow action accessing to Chrome Webstore API you can choose 2 ways:
1. Set `apiAccessToken` input directly (you can obtain it using
[google-api-fetch-token-action](https://github.com/cardinalby/google-api-fetch-token-action))2. Set the following inputs to let action get access token for you. Read
[Using the Chrome Web Store Publish API](https://developer.chrome.com/webstore/using_webstore_api),
[How to generate Google API keys](https://github.com/DrewML/chrome-webstore-upload/blob/master/How%20to%20generate%20Google%20API%20keys.md)
to learn how to obtain these values.
* `apiClientId` **Required**
* `apiClientSecret` **Required**
* `apiRefreshToken` **Required**Don't forget to store sensitive data as secrets.
* `publishTarget` **Default: `default`**
Publishing target: `default` or `trustedTesters`* `publishIgnore500Error` **Default: `true`**
Experimental option to bypass undocumented Webstore API behaviour. For example, extension had
a version 1.10.0, then we successfully published a new one with version 1.20.0 (status = 'OK').
But this version is still in publishing progress. Now we are publishing 1.30.0 and 'publish'
request fails with 500 error. But, actually, our version have been accepted, and after
some time our extension increases its version to 1.30.0. Set this option to `true` to consider
500 response as success.## Outputs
* `publishedWith500Error` Values: `true`, `false`. Indicates whether publish finished with 500 error (special case)
* `publishStatus` Set of publish statuses from API response separated by `|`. Can be empty in case of 500 error.
Possible values in set: `OK`, `NOT_AUTHORIZED`, `INVALID_DEVELOPER`, `DEVELOPER_NO_OWNERSHIP`, `DEVELOPER_SUSPENDED`,
`ITEM_NOT_FOUND`, `ITEM_PENDING_REVIEW`, `ITEM_TAKEN_DOWN`, `PUBLISHER_SUSPENDED`## Simple usage example
```yaml
uses: cardinalby/webext-buildtools-chrome-webstore-publish-action@v1
with:
extensionId: 'fonhjbpoimjmgfgbboichngpjlmilbmk'
apiClientId: ${{ secrets.G_CLIENT_ID }}
apiClientSecret: ${{ secrets.G_CLIENT_SECRET }}
apiRefreshToken: ${{ secrets.G_REFRESH_TOKEN }}
```## Google refresh token expiration
According to [Google's guide](https://developers.google.com/identity/protocols/oauth2#expiration),
the refresh token might **stop working** if it has not been used for **six months**.To avoid that, schedule
[google-api-fetch-token-action](https://github.com/cardinalby/google-api-fetch-token-action) action
with the same credentials.---
If you are interested in the building the entire deployment workflow for WebExtension,
you can read this [article](https://cardinalby.github.io/blog/post/github-actions/webext/1-introduction/).