Skip to content

Commit 5c9a2fb

Browse files
authored
Merge pull request #9098 from MicrosoftDocs/users/chcomley/other-refreshes-04-02-2026
Extend docset refresh
2 parents 3562d40 + 8632a04 commit 5c9a2fb

46 files changed

Lines changed: 1648 additions & 1713 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.openpublishing.redirection.json

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1440,6 +1440,14 @@
14401440
"azure-devops-2020"
14411441
]
14421442
},
1443+
{
1444+
"source_path": "docs/extend/develop/add-hub-group.md",
1445+
"redirect_url": "/azure/devops/extend/develop/add-hub#add-a-custom-hub-group",
1446+
"redirect_document_id": false,
1447+
"monikers": [
1448+
"azure-devops"
1449+
]
1450+
},
14431451
{
14441452
"source_path": "docs/extend/develop/add-query-result-tabs.md",
14451453
"redirect_url": "/previous-versions/azure/devops/extend/develop/add-query-result-tabs",
@@ -1522,12 +1530,20 @@
15221530
},
15231531
{
15241532
"source_path": "docs/extend/develop/host-navigation.md",
1525-
"redirect_url": "/previous-versions/azure/devops/extend/develop/host-navigation",
1533+
"redirect_url": "/azure/devops/extend/develop/work-with-urls",
15261534
"redirect_document_id": false,
15271535
"monikers": [
15281536
"azure-devops-2020"
15291537
]
15301538
},
1539+
{
1540+
"source_path": "docs/extend/develop/host-navigation.md",
1541+
"redirect_url": "/azure/devops/extend/develop/work-with-urls",
1542+
"redirect_document_id": false,
1543+
"monikers": [
1544+
"azure-devops"
1545+
]
1546+
},
15311547
{
15321548
"source_path": "docs/extend/develop/integrate-build-task.md",
15331549
"redirect_url": "/previous-versions/azure/devops/extend/develop/integrate-build-task",
@@ -8706,7 +8722,7 @@
87068722
},
87078723
{
87088724
"source_path": "docs/extend/develop/host-navigation.md",
8709-
"redirect_url": "/previous-versions/azure/devops/extend/develop/host-navigation",
8725+
"redirect_url": "/azure/devops/extend/develop/work-with-urls",
87108726
"redirect_document_id": false,
87118727
"monikers": [
87128728
"azure-devops-2019"

docs/extend/develop/add-action.md

Lines changed: 42 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
---
22
ms.subservice: azure-devops-ecosystem
3-
ms.custom: devx-track-js
4-
title: Add an Action | Extensions for Azure DevOps
5-
description: Add an action for your extension that extends Azure DevOps.
3+
ms.custom: devx-track-js, UpdateFrequency3
4+
title: Add a menu action
5+
titleSuffix: Azure DevOps
6+
description: Add a context menu action to your Azure DevOps extension.
67
ms.assetid: 7b117bbf-f188-41ce-8ff6-3723ebccea81
78
ms.topic: how-to
89
monikerRange: '<= azure-devops'
910
ms.author: chcomley
1011
author: chcomley
11-
ms.date: 08/22/2016
12+
ms.date: 04/03/2026
13+
ai-usage: ai-assisted
1214
---
1315

1416
# Add a menu action
@@ -24,9 +26,9 @@ In this example, we add an action to the query context menu in the work item que
2426
- [Develop a web extension](../get-started/node.md).
2527
- [Create a web app for your action](./add-hub.md).
2628

27-
## Update extension manifest file
29+
## Update the extension manifest
2830

29-
Below is the code snippet that adds your action to the contributions section of your [extension manifest](../develop/manifest.md).
31+
Add your action to the contributions section of your [extension manifest](../develop/manifest.md).
3032
```json
3133
...
3234
"contributions": [
@@ -63,59 +65,49 @@ Learn about all of the places where you can add actions in [Extensibility points
6365

6466
## Your HTML page
6567

66-
Your menu action is represented by a JavaScript script embedded in an HTML file. Save the following contents in a file and location that matches the reference to it
67-
in your extension's manifest file.
68+
Your menu action is represented by a JavaScript script embedded in an HTML file. Save the following contents in a file and location that matches the reference to it in your extension's manifest file.
6869

6970
```html
70-
<!DOCTYPE html>
71-
<html lang="en">
72-
<head>
73-
<meta charset="UTF-8">
74-
<title>Action Sample</title>
75-
</head>
76-
<body>
77-
<div>
78-
The end user doesn't see the content on this page.
79-
It is only in the background to handle the contributed menu item being selected.
80-
</div>
81-
</body>
82-
</html>
83-
```
84-
85-
## Your JavaScript
86-
The script below registers the handler object to handle the action, place it in the `head` section of the previous HTML page.
87-
88-
> We aliased `lib` to be `node_modules/azure-devops-extension-sdk/lib` in our `sdk-extension.json` manifest file.
89-
90-
```typescript
91-
<script src="lib/SDK.min.js"></script>
92-
<script>
93-
SDK.init();
94-
95-
// Use an IIFE to create an object that satisfies the IContributedMenuSource contract
96-
var menuContributionHandler = (function () {
97-
"use strict";
98-
return {
99-
// This is a callback that gets invoked when a user selects the newly contributed menu item
100-
// The actionContext parameter contains context data surrounding the circumstances of this
101-
// action getting invoked.
102-
execute: function (actionContext) {
103-
alert("Hello, world");
71+
<!DOCTYPE html>
72+
<html lang="en">
73+
<head>
74+
<meta charset="UTF-8">
75+
<title>Action Sample</title>
76+
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
77+
<script>
78+
window.requirejs.config({
79+
enforceDefine: true,
80+
paths: {
81+
'SDK': './lib/SDK.min'
10482
}
105-
};
106-
}());
107-
108-
// Associate the menuContributionHandler object with the "myAction" menu contribution from the manifest.
109-
SDK.register(SDK.getContributionId(), menuContributionHandler);
110-
</script>
83+
});
84+
window.requirejs(['SDK'], function (SDK) {
85+
SDK.init();
86+
SDK.ready().then(() => {
87+
// Register the menu action handler
88+
SDK.register(SDK.getContributionId(), {
89+
execute: function (actionContext) {
90+
alert("Hello, world");
91+
}
92+
});
93+
});
94+
});
95+
</script>
96+
</head>
97+
<body>
98+
<div>
99+
The end user doesn't see the content on this page.
100+
It runs in the background to handle the contributed menu item being selected.
101+
</div>
102+
</body>
103+
</html>
111104
```
112105

113106
[!INCLUDE [tip-for-more-information](../includes/tip-for-more-information.md)]
114107

115108
## Next steps
116109

117-
Now that you've written your extension, the next steps are to Package, Publish, and Install your extension. You can also check out the
118-
documentation for Testing and Debugging your extension.
110+
Package, publish, and install your extension.
119111

120112
* [Package, publish, and install extensions](../publish/overview.md)
121113
* [Testing and debugging extensions](/previous-versions/azure/devops/extend/test/debug-in-browser)
Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,35 @@
11
---
2-
title: Add panels on backlog pages | Extensions for Azure DevOps Services
3-
description: Extend Azure DevOps Services with panels on backlogs.
2+
title: Add Panels to Azure DevOps Backlog Pages
3+
description: Add panels on backlog pages in Azure DevOps to enhance your workflow. Learn how to extend backlogs with custom panels and streamline project management.
44
ms.assetid: 34f01da42-5a98-4bc5-981e-3f8d1ffdf163
55
ms.subservice: azure-devops-ecosystem
66
ms.topic: how-to
7+
ms.custom: UpdateFrequency3
78
monikerRange: 'azure-devops'
89
ms.author: chcomley
10+
ms.reviewer: chcomley
911
author: chcomley
10-
ms.date: 02/21/2025
12+
ms.date: 04/03/2026
13+
ai-usage: ai-assisted
1114
---
1215

1316
# Add panels on backlog pages
1417

1518
[!INCLUDE [version-eq-azure-devops](../../includes/version-eq-azure-devops.md)]
1619

17-
Here, we add a simple Hello World extension as a panel on the Portfolio backlog, Product backlog, and Iteration backlog.
20+
This article shows how to add a custom panel to the Portfolio backlog, Product backlog, and Iteration backlog pages.
1821

1922
[!INCLUDE [extension-docs-new-sdk](../../includes/extension-docs-new-sdk.md)]
2023

21-
<!---
22-
![panel extension on the Azure DevOps Services Portfolio backlog page](../media/backlog-pane/portfolio-backlog-pane.png)
23-
-->
24+
![Screenshot of open panel extension on the Stories backlog page.](media/add-panel-intro-show-mapping-hello-world.png)
2425

25-
![Open panel extension on the Azure DevOps Services Stories backlog page](media/add-panel-intro-show-mapping-hello-world.png)
26+
The custom panel opens in the same space as the mapping panel.
2627

27-
The custom panel opens in the same space that the mapping panel opens if it were selected.
28+
![Screenshot of custom panel extension on the Portfolio backlog page.](media/add-panel-show-custom-panel.png)
2829

29-
![panel extension on the Azure DevOps Services Portfolio backlog page](media/add-panel-show-custom-panel.png)
30+
Three backlog categories support panel extensions. The following contribution points apply to Agile, Scrum, and CMMI process templates. For custom templates, check your process to identify which backlogs use the requirement or portfolio category.
3031

31-
32-
There are three types of backlogs that can be targets for panel extensions: Portfolio backlogs, Product backlogs, and Iteration backlogs. For the Agile template, this breakdown is as below. This is representative of Scrum and CMMI as well. For custom templates, please consult your process to see which backlogs are requirement or portfolio category.
33-
34-
35-
| Backlog Category | Contribution point |
32+
| Backlog category | Contribution point |
3633
|--------------------|--------------------|
3734
| Portfolio (Epic, Feature) | ms.vss-work-web.portfolio-backlog-toolpane |
3835
| Requirements (User Story, Product Backlog Item) | ms.vss-work-web.requirement-backlog-toolpane |
@@ -42,10 +39,10 @@ For more information, see the [Azure DevOps Services Extension Sample](https://g
4239

4340
## Update your extension manifest
4441

45-
Update your [extension manifest](../develop/manifest.md) file with the following code:
42+
Update your [extension manifest](manifest.md) file with the following code. This example adds a panel to all three backlog types.
4643

4744
```json
48-
...
45+
{
4946
"contributions": [
5047
{
5148
"id": "Fabrikam.HelloWorld.Backlogs.Panel",
@@ -64,37 +61,38 @@ Update your [extension manifest](../develop/manifest.md) file with the following
6461
}
6562
}
6663
],
67-
"scopes": [
68-
"vso.work"
64+
"scopes": [
65+
"vso.work"
6966
]
70-
...
67+
}
7168
```
7269

7370
### Contribution
74-
For each contribution in your extension, the manifest defines
75-
* the type of contribution (backlog panel in this case),
76-
* the contribution target (the requirements, portfolio, and iteration backlogs in this case),
77-
* and the properties that are specific to each type of contribution. For panels, we have
7871

72+
For each contribution in your extension, the manifest defines:
7973

80-
| Property | Description
81-
|--------------------|----------------------------------------------------------------------------------------|
82-
| title | Tooltip text that appears on the menu item |
83-
| name | What appears in the dropdown for panel selection |
84-
| uri | Path (relative to the extension's base URI) of the page to surface as the panel |
85-
| registeredObjectId | ID of the object registered for the panel |
74+
- The type of contribution, such as `backlog-panel`
75+
- The contribution targets, such as the requirement, portfolio, and iteration backlog toolpanes
76+
- The properties specific to each contribution type
8677

78+
The following table describes the panel-specific properties.
8779

88-
Learn about all of the places where you can add an extension in [Extensibility points](../reference/targets/overview.md).
80+
| Property | Description |
81+
|---|---|
82+
| `title` | Tooltip text that appears on the menu item. |
83+
| `name` | Text that appears in the dropdown for panel selection. |
84+
| `uri` | Path, relative to the extension's base URI, of the page to surface as the panel. |
85+
| `registeredObjectId` | ID of the object registered for the panel. |
8986

90-
### Scopes
91-
Include the [scopes](manifest.md#scopes) that your extension requires.
92-
In this case, we need `vso.work` to access work items.
87+
For more information about where you can add an extension, see [Extensibility points](../reference/targets/overview.md).
9388

89+
### Scopes
9490

91+
Include the [scopes](manifest.md#scopes) that your extension requires. This example uses `vso.work` to access work items.
9592

9693
## Get selection events
97-
To get selection events (information about what work items are selected) implement this interface on your registered object.
94+
95+
To get selection events about which work items are selected, implement this interface on your registered object.
9896

9997
```javascript
10098
...
@@ -104,10 +102,7 @@ To get selection events (information about what work items are selected) impleme
104102
...
105103
```
106104

107-
## Next steps
105+
## Next step
108106

109107
> [!div class="nextstepaction"]
110108
> [Package, Publish, and Install](../publish/overview.md)
111-
or
112-
> [!div class="nextstepaction"]
113-
> [Test and Debug](/previous-versions/azure/devops/extend/test/debug-in-browser)

docs/extend/develop/add-backlog-tabs.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
---
2-
title: Add tabs on backlog pages | Extensions for Azure DevOps Services
3-
description: Learn how to create a web page in an iframe, and host it in Azure DevOps Services as a tab on the backlog pages.
2+
title: Add tabs on backlog pages
3+
titleSuffix: Azure DevOps
4+
description: Add custom tabs to product and iteration backlog pages in your Azure DevOps extension.
45
ms.assetid: 3D0B51DA-66AA-45C7-B9F1-08973CFF7E5E
56
ms.subservice: azure-devops-ecosystem
7+
ms.custom: UpdateFrequency3
68
ms.topic: how-to
79
monikerRange: 'azure-devops'
810
ms.author: chcomley
911
author: chcomley
10-
ms.date: 03/21/2019
12+
ms.date: 04/03/2026
13+
ai-usage: ai-assisted
1114
---
1215

1316
# Add tabs on backlog pages
@@ -93,7 +96,7 @@ In this case, we need `vso.work` to access work items.
9396
Include all of the files your extension accesses. <br>
9497
For your files, set `addressable` to `true` unless you include other files that don't need to be URL-addressable.
9598

96-
## Example registeredObjectId
99+
## Register the tab object
97100
```javascript
98101
SDK.register("backlogTabObject", {
99102
pageTitle: function(state) {

0 commit comments

Comments
 (0)