Creating configuration pane for Azure DevOps extension

Viewed 346

We have created a few extensions for Azure DevOps (0) that are pipeline extensions.

We are trying to create new extensions that can react to changes in work items of Azure Boards. The API's for interacting with changes in work items are fairly straight-forward, but we are struggling with configuration of the extension.

Essentially we need to allow the users to configure the extension on two levels

1) On "Organization level"

It should be possible for a user (Project Administrator) to configure parameters as "external system URL" etc. An example of this could be something like below mockup:

enter image description here

2) On "Project level"

For each project in Azure DevOps an admin should be able to configure parameters like "Enable/disable extension" or "External UID" etc. An example of this could be something like below mockup:

Organization level

When the extension reacts to "Work item saved" it will query the parameters on both levels to figure out what to do.

My problem is: where the heck do I save this information? I could add a number of "custom fields" to the template in use, but since fields can only be added to work item types, it is really not ideal in any way.

Where can I save this information through the API's?

PS: Source code for our extensions are available as OSS (Apache license) here:

(0) https://bitbucket.org/projectum/

Thank you :-)

2 Answers

For #1, it somewhat looks like what you can configure under a pipeline's service connections. This is per project though and not at an organization level.

enter image description here

This might be easier to manage outside of an extension and instead just use a service hook to call some middle tier that accomplishes what you want.

Related