A browser extension to remove mental load when working with pull requests. It has been published in the Chrome Web Store and the Firefox Add-ons Store to be installed with one click.
git clone git@github.com:renuo/github-pull-request-counter.git
cd github-pull-request-counter
bin/setup
For people using a macbook with the Apple arm chip:
brew install chromium
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
export PUPPETEER_EXECUTABLE_PATH=`which chromium`
To build the extension just run:
zip -r dist/dist.zip src
this will create a new zip file with everything needed.
To run it locally, you can load the unpacked extension by pointing to the src
folder.
- Visit
chrome://extensions/
. - Enable "Developer mode" in the top right corner.
- Click "Load unpacked" in the top left corner.
- Navigate to the root of this repository and select
dist
it.
Note: If you have the extension already installed through the webstore you won't be able to add the development version. Either remove it or create a new chrome profile to get around the issue.
bin/check
bin/fastcheck
The deployment process for this extension is handled through Semaphore CI.
When you initiate a deployment:
- A new build is uploaded to both the Chrome Web Store and the Firefox Add-ons Store.
- The
version
insrc/manifest.json
must be incremented before deployment — otherwise, the upload will be rejected. - Once uploaded, the extensions are automatically submitted for publication. They will go live after each platform’s review process is complete (this can take some time).
Steps to release:
- Bump the version field in src/manifest.json.
- Trigger the manual deploy jobs in Semaphore CI.
- Check the developer dashboards for Chrome and Firefox to ensure the upload was successful.
- Wait for the review process to complete.
This is already done for this project.
- Do the steps described under "Add to chrome"
- Click "Pack extension" and then "Remove"
- Chrome made 2 new files in the parent directory of the dist folder. Drag and drop
dist.srx
intochrome://extensions/
and install it. Copy the id displayed underID:
. - Head to the the User Data Directory. For mac:
~/Library/Application\ Support/Google/Chrome
. For other: https://chromium.googlesource.com/chromium/src/+/master/docs/user_data_dir.md - From the User Data Directory open
Default/Extensions/_<extensionId>_/_<versionString>_/manifest.json
._<extensionId>_
is equal to the ID gained in step 3._<versionString>_
is just0.0.0
. - Copy the key from
"key:"
and paste it into your manifest.json:"key: <key>"
- When running the tests chromium might ask you: "Do you want to allow the application Chromium.app to accept incoming
network connections?". You can remove this by running
sudo codesign --force --deep --sign - ./node_modules/puppeteer/.local-chromium/mac-*/chrome-mac/Chromium.app
. This will create a valid certificate. Sudo is necessary. Source - Chromium can't be run in headless when testing extensions. Source
Copyright Renuo AG, published under the MIT license.