Creating plugins with the plugins SDK
You can create your own plugins and install them in HCL™ Accelerate. After installing custom plugins, you can integrate them in your releases, reports, and value streams.
HCL™ Accelerate provides a SDK that contains the tools, including local dependencies and wrappers, that you need to create your own plugins. The plugin SDK provides a sample plugin that you can use to get started, and JavaScript templates that you can customize for your own plugins.
- Node.js version 12 or later
- NPM version 6 or later
- Docker
- HCL™ Accelerate version 2.0 or later
To get started with the plugin SDK, complete the following steps:
- Download the plugin SDK. On the HCL™ Accelerate Plugins tab, click Download plugin sample. After the download is finished, extract the compressed file.
- Build the sample plugin. In the ucv-ext-sdk-template folder, run the
following commands. Additional instructions are provided in the SDK Readme.md
file.
Thenpm install npm run dist-runnable docker build . -t name:tag
name
value can be any value that you want. Thetag
value must represent the latest image version, or some other valid semantic version. For example,docker build . -t testplugin:0.1
. - Upload the sample plugin. On the
HCL™ Accelerate
Plugins tab, click Load plugin, and then select the
Docker image that contains your plugin. To upload the image from the previous step, you specify
testplugin:0.1
. - Create an integration by using the sample plugin. On the Plugins tab, click Add integration.
Plugins are categorized by data collection and communication methods. Generally, plugins are designed to use one of the following communication methods.
- Webhook. These plugins use webhooks to communicate with a defined HCL™ Accelerate API endpoint. The webhook is used to trigger data collection events. Examples include the AppScan™, and SonarCube plugins.
- Poller. These plugins are based on an event defined by the plugin. Queries are performed to determine when to send and update data from the external service. Examples include the GitHub™, and Rally plugins.
- Parser. These plugins integrate functions to parse a specific file type and create a metric document that HCL™ Accelerate can display with other value stream management and portfolio views. Examples include the JUnit, and OneTest plugins.
The plugin SDK provides JavaScript templates for each type. For example, the template ucv-ext-sdk-templates/src/endpoints/SampleEdnpoint.js defines the properties that you need to create an endpoint-type plugin.