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-prod
and 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-prod
folder inside ofbuild/
- Open Firefox
- Go to
about:debugging#/runtime/this-firefox
- Click Load Temporary Add-on -> Select the
firefox-mv2-prod.zip
file. 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!