Multi Cherry-Pick Tool
This tool offers an easy way to use the git cherry-pick operation to apply changes to multiple branches. For each branch selected, a new topic branch will be created with the applied changes. If the Pull request option is selected, a pull request will be opened to the target branch.
Quick steps to get started using the tool
Technologies used to develop the extension
How to build
Download the required tools
You will need:
Prereq: Organization permission level
Prereq: Node and NPM
From a terminal ensure at least node 10.15 and npm 6.9. Use the following command to figure out what version you have installed locally:
The following should appear in your terminal:
To install npm separately and verify that it installed properly:
Note: On Windows, if it's still returning npm 2.x, run
Prereq: Create a publisher
All extensions, including extensions from Microsoft, live under a publisher. Anyone can create a publisher and publish extensions under it. You can also give other people access to your publisher if a team is developing the extension.
You will do one of two things:
Run this command once:
Build the Extension
This extension uses webpack for bundling and webpack-dev-server for watching files and serving bundles during development.
Two bundles are defined for webpack: one for the main dialog and one for the extension context menu registration.
All actions can be triggered using npm scripts (
Deploy the Extension
You will need to deploy your extension to the marketplace at least once so that you can share it with your organization and install it. In order to do this, you will need to generate a personal access token (PAT). Learn how to do that here. When creating your PAT, under Organization, select All accessible organizations, and set the Marketplace scope to Publish.
Then run once, inserting your PAS into [token]:
You will then need to install and share your extension, learn how to do that here.
Once the extension is installed, you will notice that it won’t load correctly. It isn't loading because we configured it to load all its resources (html, images, etc.) from
To start webpack-dev-server run:
Now if you go to
Although most code changes will be reflected immediately, you may still need to occasionally update your extension in the marketplace. The dev extension loads all its resources from the webpack-dev-server, but the manifest itself is being loaded from the published code. Therefore, any changes to the manifest file will not be properly reflected in Azure DevOps until the extension has been republished.
Configure your VS Code project to debug against Azure DevOps
In VS Code, press F5 to start debugging (making sure the webpack-dev-server is still running). The default launch configuration should be set to Firefox.
Note: Chrome configurations are included in the sample as well in case the Chrome debugging extension eventually supports iframes. However, debugging iframes is only supported in the Debugger for Firefox extension for now.
Once Firefox starts up, you will have to go through the steps of allowing the
Once you are logged in to Azure DevOps, your extension should be running. Set a breakpoint in a method in VS Code and you should see that breakpoint hit when that method executes.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.