This is the browser extension for Gitpod. It supports Chrome (see Chrome Web Store), Firefox (see Firefox Add-ons) and Edge (see how to install Chrome extensions), and adds a Gitpod button to the configured GitLab, GitHub and Bitbucket installations (defaults to gitlab.com, github.com and bitbucket.org) which immediately creates a Gitpod workspace for the current git context:
We are currently tracking all issues related to the browser extension in the gitpod-io/gitpod repository.
You can use the component: browser-extension label to search for relevant issues including feature proposals and bug reports.
To make changes and test them using Gitpod itself:
- add test cases to the unit test
- try out changes like this:
- run
pnpm build - run
pnpm watch-prodand download the built binary for your system (local machine) - run the binary anywhere on your local machine to sync the extension folder locally.
- open Chrome and go to
chrome://extensions/ - enable
Developer mode(top right) - click
Load unpacked(top left) and select the folder you just downloaded - now you can test your changes
- repeat step 1 and 2 and reload the extension whenever you want to test new changes
- run
The build happens automatically when you start a workspace but if you want to build explicitly, use these commands:
pnpm install
pnpm build --target=chrome-mv3 # or --target=firefox-mv2
pnpm package --target=chrome-mv3 # or --target=firefox-mv2
To generate a proper manifest.json file for Firefox, execute the following script first. It ensures that the manifest file is generated with MV2-compatible fields.
./scripts/firefox-mv2.sh
You can test the extension without publishing to the store. Before uploading the bundle to the browser, make sure to build the code, then follow these steps:
- Open Chrome
- Click Settings -> Extensions -> Load unpacked
- Select the
chrome-mv3-prodfolder inside ofbuild/
- Open Firefox
- Go to
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on -> Select the
firefox-mv2-prod.zipfile. Please note, that some features (like extension settings) will not work.
We currently publish the extension for Chrome and Firefox.
To release a new version, follow these steps:
-
Bump up the version value inside
package.json -
Push your changes to
main -
Create a tag
vX.Y.Z -
Compose a list of changes using the list of commits that were pushed since last version
-
Create a new release, listing changes:
### Changes - Change/Fix A - Change/Fix B - Change/Fix C ### Credits Thanks to @{EXTERNAL_CONTRIBUTOR_USERNAME} for helping! 🍊
For Firefox, our GitHub Action should take care of publishing for us. You can trigger a release (either staging or production) from the workflow's tab.
For Chrome:
- Using your Google account, open the
gitpod-browser-extension Google Group - If you don't have access, reach out for help in Slack
- Once you are in the Google Group, make sure to "Switch to Gitpod" in the top navbar
- Click "Upload new package"
- Upload the zip file (
chrome-mv3-prod.zip) and submit - Wait a few hours for the review to happen!
