Sync/upstream 20260812 - #32
Merged
Merged
Conversation
This pull request updates the documentation for Azure DevOps test plan tools to align with the structure used by the Azure DevOps remote MCP server. The changes consolidate and reorganize the test plan tools into grouped dispatchers using an `action` parameter, making the documentation more consistent and easier to use. **Test Plan Tool Restructuring:** * The test plan tools are now grouped under dispatcher endpoints like `testplan`, `testplan_test_plan_write`, `testplan_test_suite_write`, and `testplan_test_case_write`, each supporting multiple actions via an `action` parameter. [[1]](diffhunk://#diff-63809bcf7da46bf515d3deeb8551a8a5cd63b3fff00ee8dd3517e46bb2bd6025L80-R92) [[2]](diffhunk://#diff-63809bcf7da46bf515d3deeb8551a8a5cd63b3fff00ee8dd3517e46bb2bd6025L443-R490) * The documentation table has been updated to reflect the new tool names, actions, and required/optional parameters for each operation. [[1]](diffhunk://#diff-63809bcf7da46bf515d3deeb8551a8a5cd63b3fff00ee8dd3517e46bb2bd6025L80-R92) [[2]](diffhunk://#diff-63809bcf7da46bf515d3deeb8551a8a5cd63b3fff00ee8dd3517e46bb2bd6025L443-R490) * Deprecated individual tool endpoints (e.g., `mcp_ado_testplan_list_test_plans`, `mcp_ado_testplan_create_test_plan`, etc.) in favor of the new grouped dispatcher structure. **Documentation Improvements:** * Added a prominent note explaining the alignment with the Azure DevOps remote MCP server tool structure and the consolidation of test plan tools. [[1]](diffhunk://#diff-63809bcf7da46bf515d3deeb8551a8a5cd63b3fff00ee8dd3517e46bb2bd6025L80-R92) [[2]](diffhunk://#diff-63809bcf7da46bf515d3deeb8551a8a5cd63b3fff00ee8dd3517e46bb2bd6025L443-R490) * Updated descriptions and parameter lists to clarify usage and support for Markdown formatting in test case steps. ## GitHub issue number N/A ## **Associated Risks** Changes to tools signatures and descriptions ## ✅ **PR Checklist** - [x] **I have read the [contribution guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)** - [x] **I have read the [code of conduct guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)** - [x] Title of the pull request is clear and informative. - [x] 👌 Code hygiene - [x] 🔭 Telemetry added, updated, or N/A - [x] 📄 Documentation added, updated, or N/A - [x] 🛡️ Automated tests added, or N/A ## 🧪 **How did you test it?** manual tested and updated all automated tests --------- Co-authored-by: aaudzei <anton.audzei@posteo.net>
….0 (microsoft#1434) Bumps [azure-devops-extension-api](https://github.com/Microsoft/azure-devops-extension-api) from 5.274.0 to 5.275.0. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/microsoft/azure-devops-extension-api/commit/950c4664db727acce279d0af226611daec50f00c"><code>950c466</code></a> All files have been added to the repo</li> <li><a href="https://github.com/microsoft/azure-devops-extension-api/commit/3d46b3041b16b99c4f205cae4e0673f25f1e6760"><code>3d46b30</code></a> Merge pull request <a href="https://redirect.github.com/Microsoft/azure-devops-extension-api/issues/207">#207</a> from microsoft/switch-to-packagefeedproxy</li> <li><a href="https://github.com/microsoft/azure-devops-extension-api/commit/96ca00c1e0baca3edde464cd8b7208051adc0c62"><code>96ca00c</code></a> Switch npm registry from npmjs to Microsoft package feed proxy</li> <li><a href="https://github.com/microsoft/azure-devops-extension-api/commit/e0c7645cee34fde54dee7815cbed813ed68b6c33"><code>e0c7645</code></a> Merge pull request <a href="https://redirect.github.com/Microsoft/azure-devops-extension-api/issues/206">#206</a> from microsoft/releases/5.274.0</li> <li><a href="https://github.com/microsoft/azure-devops-extension-api/commit/f8e41d2d05afba7ebbde21fd2d7949888a54bde1"><code>f8e41d2</code></a> All files have been added to the repo</li> <li>See full diff in <a href="https://github.com/Microsoft/azure-devops-extension-api/compare/5.274.0...5.275.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dan Hellem <dahellem@microsoft.com>
… data transfer objects (DTOs) (microsoft#1432) This pull request introduces a blueprint pattern to be applied on the recent functions aggregating tools. A new command-based architecture for handling grouped actions is applied in the `pipelines_write` tool. It adds a type-safe DTO layer for all pipeline write actions, centralizes argument validation, and decouples the dispatcher logic from individual actions. The main improvements are the introduction of a shared command infrastructure, the addition of type-safe DTOs for pipeline actions, and the refactoring of `pipelines.ts` to use this new pattern. **Command infrastructure and dispatcher:** - Added a generic, type-safe command interface (`Command<TArgs>`) and dispatcher (`dispatchAction`) in `src/shared/command.ts`, enabling decoupled and robust action routing for grouped tools. **Type-safe DTOs for pipeline actions:** - Introduced `src/tools/pipelines.dto.ts` to define Zod-based schemas and inferred TypeScript types for all `pipelines_write` actions, ensuring a single source of truth for validation and argument types. - Updated Jest config to support `.ts` versions of new shared files (`command.ts`, `pipelines.dto.ts`). **Refactoring pipelines write actions:** - Refactored `src/tools/pipelines.ts` to implement each write action (`run_pipeline`, `create_pipeline`, `update_build_stage`) as a self-contained command using the new infrastructure, and registered them in a central command registry. - Centralized error handling for all pipelines write actions using per-action error prefixes. - Cleaned up legacy code to remove now-obsolete pipelines write logic.
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 17.0.8 to 17.1.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lint-staged/lint-staged/releases">lint-staged's releases</a>.</em></p> <blockquote> <h2>v17.1.0</h2> <h3>Minor Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/lint-staged/lint-staged/pull/1816">#1816</a> <a href="https://github.com/lint-staged/lint-staged/commit/7568d4fb15ba3c3317a7aec36195461cb2f272d7"><code>7568d4f</code></a> - The console output of <em>lint-staged</em> has been simplified so that there's less interactive spinners and more explicit messages like <em>"Started…</em>" -> "<em>Done!</em>". The primary purpose of this was to remove <a href="https://github.com/listr2/listr2"><code>Listr2</code></a>, a very large dependency.</p> <p><strong>Before:</strong></p> <p>Size of <code>node_modules/</code> after installing: <code>1561.7 kB</code> with 29 packages.</p> <p>Fancy interactive spinners, but output dynamically changes:</p> <pre lang="shell"><code>✔ Backed up original state in git stash (0b191303) ✔ Running tasks for staged files... ✔ Staging changes from tasks... ✔ Cleaning up temporary files... </code></pre> <p><strong>After:</strong></p> <p>Size of <code>node_modules/</code> after installing: <code>974.0 kB</code> with 5 packages (37.6 % smaller, 82.7 % less transitive dependencies).</p> <p>Simpler but more explicit output:</p> <pre lang="shell"><code>⋯ Backing up original state… ✔ Done backing up original state (35b38ed1)! ⋯ Running tasks for staged files… *.js — 1 file ⋯ oxlint --fix *.{json,md} — 1 file ⋯ oxfmt --write <p>✔ oxfmt --write<br /> ✔ oxlint --fix</p> <p>✔ Done running tasks for staged files!<br /> ⋯ Staging changes from tasks…<br /> ✔ Done staging changes from tasks!<br /> ⋯ Cleaning up temporary files…<br /> ✔ Done cleaning up temporary files!<br /> </code></pre></p> </li> </ul> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/lint-staged/lint-staged/pull/1816">#1816</a> <a href="https://github.com/lint-staged/lint-staged/commit/c19079d808d557b538c34fe69381d2ef970c7acc"><code>c19079d</code></a> - Try to restore hidden unstaged changes when using <code>--no-revert</code>.</p> </li> <li> <p><a href="https://redirect.github.com/lint-staged/lint-staged/pull/1818">#1818</a> <a href="https://github.com/lint-staged/lint-staged/commit/efb23a25075d980db9edabd2f71e769fc97d48c8"><code>efb23a2</code></a> - Console output colors are enabled/disabled more consistently.</p> </li> <li> <p><a href="https://redirect.github.com/lint-staged/lint-staged/pull/1818">#1818</a> <a href="https://github.com/lint-staged/lint-staged/commit/26112a19151f9678861d51ea7416e9f9bef24bbb"><code>26112a1</code></a> - Failed JS function tasks now properly kill other tasks, unless <code>--continue-on-error</code> is used. Previously their failure didn't affect other tasks.</p> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md">lint-staged's changelog</a>.</em></p> <blockquote> <h2>17.1.0</h2> <h3>Minor Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/lint-staged/lint-staged/pull/1816">#1816</a> <a href="https://github.com/lint-staged/lint-staged/commit/7568d4fb15ba3c3317a7aec36195461cb2f272d7"><code>7568d4f</code></a> - The console output of <em>lint-staged</em> has been simplified so that there's less interactive spinners and more explicit messages like <em>"Started…</em>" -> "<em>Done!</em>". The primary purpose of this was to remove <a href="https://github.com/listr2/listr2"><code>Listr2</code></a>, a very large dependency.</p> <p><strong>Before:</strong></p> <p>Size of <code>node_modules/</code> after installing: <code>1561.7 kB</code> with 29 packages.</p> <p>Fancy interactive spinners, but output dynamically changes:</p> <pre lang="shell"><code>✔ Backed up original state in git stash (0b191303) ✔ Running tasks for staged files... ✔ Staging changes from tasks... ✔ Cleaning up temporary files... </code></pre> <p><strong>After:</strong></p> <p>Size of <code>node_modules/</code> after installing: <code>974.0 kB</code> with 5 packages (37.6 % smaller, 82.7 % less transitive dependencies).</p> <p>Simpler but more explicit output:</p> <pre lang="shell"><code>⋯ Backing up original state… ✔ Done backing up original state (35b38ed1)! ⋯ Running tasks for staged files… *.js — 1 file ⋯ oxlint --fix *.{json,md} — 1 file ⋯ oxfmt --write <p>✔ oxfmt --write<br /> ✔ oxlint --fix</p> <p>✔ Done running tasks for staged files!<br /> ⋯ Staging changes from tasks…<br /> ✔ Done staging changes from tasks!<br /> ⋯ Cleaning up temporary files…<br /> ✔ Done cleaning up temporary files!<br /> </code></pre></p> </li> </ul> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/lint-staged/lint-staged/pull/1816">#1816</a> <a href="https://github.com/lint-staged/lint-staged/commit/c19079d808d557b538c34fe69381d2ef970c7acc"><code>c19079d</code></a> - Try to restore hidden unstaged changes when using <code>--no-revert</code>.</p> </li> <li> <p><a href="https://redirect.github.com/lint-staged/lint-staged/pull/1818">#1818</a> <a href="https://github.com/lint-staged/lint-staged/commit/efb23a25075d980db9edabd2f71e769fc97d48c8"><code>efb23a2</code></a> - Console output colors are enabled/disabled more consistently.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lint-staged/lint-staged/commit/dd5a95fdb3a70601fdb69a618c1a3c6c3a2286e2"><code>dd5a95f</code></a> Merge pull request <a href="https://redirect.github.com/lint-staged/lint-staged/issues/1817">#1817</a> from lint-staged/changeset-release/main</li> <li><a href="https://github.com/lint-staged/lint-staged/commit/aad7f3b14392fd01c482fb71303ecb5d641cf26e"><code>aad7f3b</code></a> chore(changeset): release</li> <li><a href="https://github.com/lint-staged/lint-staged/commit/11b1d5c3e503eb2be5f93c7db15bb9f83091c455"><code>11b1d5c</code></a> Merge pull request <a href="https://redirect.github.com/lint-staged/lint-staged/issues/1818">#1818</a> from lint-staged/fixes</li> <li><a href="https://github.com/lint-staged/lint-staged/commit/efb23a25075d980db9edabd2f71e769fc97d48c8"><code>efb23a2</code></a> fix: enable colors globally based on option</li> <li><a href="https://github.com/lint-staged/lint-staged/commit/26112a19151f9678861d51ea7416e9f9bef24bbb"><code>26112a1</code></a> fix: function task failure kills other tasks, unless <code>--continue-on-error</code> wa...</li> <li><a href="https://github.com/lint-staged/lint-staged/commit/9b98b7f02921f59294171368d0e87dc6c3ce22c0"><code>9b98b7f</code></a> fix: handle error when calculating hash of unstaged changes</li> <li><a href="https://github.com/lint-staged/lint-staged/commit/d43432b0b64415468ba853e84557b6d662155475"><code>d43432b</code></a> fix: do not allow NaN concurrency</li> <li><a href="https://github.com/lint-staged/lint-staged/commit/bd4dcbf0ed22a655386a29ac98c5ed4296d6b354"><code>bd4dcbf</code></a> fix: do not drop backup stash when restoring unstaged changes fails and using...</li> <li><a href="https://github.com/lint-staged/lint-staged/commit/9153a77b55e410b43b0d05d4b1aea2078a22339d"><code>9153a77</code></a> Merge pull request <a href="https://redirect.github.com/lint-staged/lint-staged/issues/1816">#1816</a> from lint-staged/replace-listr2</li> <li><a href="https://github.com/lint-staged/lint-staged/commit/290e618d1e0686d6b82a91c8716de3d4bf850691"><code>290e618</code></a> refactor: use common identity function</li> <li>Additional commits viewable in <a href="https://github.com/lint-staged/lint-staged/compare/v17.0.8...v17.1.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ft#1439) This pull request adds a new remote configuration to the `server.json` file. This update allows the MCP server to connect to an external service endpoint. Configuration changes: * Added a `remotes` section to `server.json`, specifying a `streamable-http` remote with the URL `https://mcp.dev.azure.com`. ## GitHub issue number N/A ## **Associated Risks** None ## ✅ **PR Checklist** - [x] **I have read the [contribution guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)** - [x] **I have read the [code of conduct guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)** - [x] Title of the pull request is clear and informative. - [x] 👌 Code hygiene - [x] 🔭 Telemetry added, updated, or N/A - [x] 📄 Documentation added, updated, or N/A - [x] 🛡️ Automated tests added, or N/A ## 🧪 **How did you test it?** N/A
Consolidated work item tracking tools to match remote ## GitHub issue number N/A ## **Associated Risks** Signatures are changing ## ✅ **PR Checklist** - [x] **I have read the [contribution guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)** - [x] **I have read the [code of conduct guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)** - [x] Title of the pull request is clear and informative. - [x] 👌 Code hygiene - [x] 🔭 Telemetry added, updated, or N/A - [x] 📄 Documentation added, updated, or N/A - [x] 🛡️ Automated tests added, or N/A ## 🧪 **How did you test it?** Ran thru all tools manually and updated auto tests
Tool consolidation for repositories.ts to match format of other tools and remote MCP ## GitHub issue number N/A ## **Associated Risks** changing of tool signatures ## ✅ **PR Checklist** - [x] **I have read the [contribution guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)** - [x] **I have read the [code of conduct guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)** - [x] Title of the pull request is clear and informative. - [x] 👌 Code hygiene - [x] 🔭 Telemetry added, updated, or N/A - [x] 📄 Documentation added, updated, or N/A - [x] 🛡️ Automated tests added, or N/A ## 🧪 **How did you test it?** manual testing and updates to automated tests for 100% coverage
…crosoft#1446) ## Summary Fixes microsoft#1445. `wit_work_item_write` only added the `multilineFieldsFormat` patch operation for a `Markdown`-formatted field when its value was **longer than 100 characters** — both in the `create` action (`src/tools/work-items.ts` L569-577) and the `update_batch` action (L613-621). Short Markdown values (e.g. a one-line description) never got the `multilineFieldsFormat` flag set, so Azure DevOps defaulted the field's rendering format to `Html` and stored/displayed the raw Markdown syntax literally instead of rendering it. The fix removes the arbitrary `value.length > 100` gate: the flag is now set whenever `format === "Markdown"` is requested, regardless of value length. ## Test plan - [x] Added a unit test for `create` covering a short (<100 char) Markdown description, confirming `multilineFieldsFormat` is now set. - [x] Added a unit test for `update_batch` covering the same short-value case. - [x] `npx jest test/src/tools/work-items.test.ts` — all 250 tests pass. - [x] `npx eslint src/tools/work-items.ts test/src/tools/work-items.test.ts` — clean. - [x] `npx prettier --check` — clean. - [x] `npm run build` — succeeds. Co-authored-by: Dan Hellem <dahellem@microsoft.com>
Bumps [body-parser](https://github.com/expressjs/body-parser) from 2.2.1 to 2.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/expressjs/body-parser/releases">body-parser's releases</a>.</em></p> <blockquote> <h2>v2.3.0</h2> <h2>Important: Security</h2> <ul> <li>Security fix for <a href="https://www.cve.org/CVERecord?id=CVE-2025-13466">CVE-2026-12590</a> (<a href="https://github.com/expressjs/body-parser/security/advisories/GHSA-v422-hmwv-36x6">GHSA-v422-hmwv-36x6</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>build(deps): bump actions/download-artifact from 6.0.0 to 7.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/681">expressjs/body-parser#681</a></li> <li>build(deps): bump actions/checkout from 5.0.0 to 6.0.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/682">expressjs/body-parser#682</a></li> <li>build(deps): bump actions/setup-node from 6.0.0 to 6.1.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/683">expressjs/body-parser#683</a></li> <li>build(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/685">expressjs/body-parser#685</a></li> <li>build(deps): bump github/codeql-action from 4.31.2 to 4.31.9 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/684">expressjs/body-parser#684</a></li> <li>perf(urlencoded): move empty-body guard to avoid extra function closure by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/647">expressjs/body-parser#647</a></li> <li>Improve ESM compatibility by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/697">expressjs/body-parser#697</a></li> <li>docs: add recommendations for configuring payload limits by <a href="https://github.com/bjohansebas"><code>@bjohansebas</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/699">expressjs/body-parser#699</a></li> <li>build(deps): bump actions/setup-node from 6.1.0 to 6.2.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/701">expressjs/body-parser#701</a></li> <li>build(deps): bump github/codeql-action from 4.31.10 to 4.32.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/702">expressjs/body-parser#702</a></li> <li>build(deps): bump actions/checkout from 6.0.1 to 6.0.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/700">expressjs/body-parser#700</a></li> <li>chore: add explicit type commonjs to package.json by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/711">expressjs/body-parser#711</a></li> <li>deps: update dependencies to latest versions by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/708">expressjs/body-parser#708</a></li> <li>build(deps): bump actions/download-artifact from 7.0.0 to 8.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/712">expressjs/body-parser#712</a></li> <li>build(deps): bump github/codeql-action from 4.32.0 to 4.32.4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/713">expressjs/body-parser#713</a></li> <li>build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/714">expressjs/body-parser#714</a></li> <li>fix: improve limit option validation by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/698">expressjs/body-parser#698</a></li> <li>build(deps): bump github/codeql-action from 4.32.4 to 4.35.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/719">expressjs/body-parser#719</a></li> <li>build(deps): bump actions/setup-node from 6.2.0 to 6.3.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/718">expressjs/body-parser#718</a></li> <li>build(deps): bump actions/download-artifact from 8.0.0 to 8.0.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/717">expressjs/body-parser#717</a></li> <li>perf: eliminate conditional check in json strict mode hot path by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/651">expressjs/body-parser#651</a></li> <li>ci: add node.js 26 to text matrix by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/726">expressjs/body-parser#726</a></li> <li>build(deps): bump actions/setup-node from 6.3.0 to 6.4.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/725">expressjs/body-parser#725</a></li> <li>build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/724">expressjs/body-parser#724</a></li> <li>build(deps): bump github/codeql-action from 4.35.1 to 4.35.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/723">expressjs/body-parser#723</a></li> <li>Upgrade "content-type" by <a href="https://github.com/blakeembrey"><code>@blakeembrey</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/728">expressjs/body-parser#728</a></li> <li>refactor: switch to const/let and enable eslint no-var rule by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/729">expressjs/body-parser#729</a></li> <li>Update outdated reference to MDN docs by <a href="https://github.com/krzysdz"><code>@krzysdz</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/730">expressjs/body-parser#730</a></li> <li>build(deps): bump github/codeql-action from 4.35.3 to 4.36.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/731">expressjs/body-parser#731</a></li> <li>build(deps): bump actions/checkout from 6.0.2 to 6.0.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/expressjs/body-parser/pull/732">expressjs/body-parser#732</a></li> <li>chore: updated deps to latest by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/733">expressjs/body-parser#733</a></li> <li>2.3.0 by <a href="https://github.com/UlisesGascon"><code>@UlisesGascon</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/735">expressjs/body-parser#735</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/krzysdz"><code>@krzysdz</code></a> made their first contribution in <a href="https://redirect.github.com/expressjs/body-parser/pull/730">expressjs/body-parser#730</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/expressjs/body-parser/compare/v2.2.2...v2.3.0">https://github.com/expressjs/body-parser/compare/v2.2.2...v2.3.0</a></p> <h2>v2.2.2</h2> <h2>What's Changed</h2> <ul> <li>docs: update README links by <a href="https://github.com/efekrskl"><code>@efekrskl</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/673">expressjs/body-parser#673</a></li> <li>docs: release notes for the v1.20.4 release by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/674">expressjs/body-parser#674</a></li> <li>docs: update URL-encoded parser description to include ISO-8859-1 encoding support by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/679">expressjs/body-parser#679</a></li> <li>docs: use standard jsdoc tags everywhere by <a href="https://github.com/Phillip9587"><code>@Phillip9587</code></a> in <a href="https://redirect.github.com/expressjs/body-parser/pull/677">expressjs/body-parser#677</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/expressjs/body-parser/blob/master/HISTORY.md">body-parser's changelog</a>.</em></p> <blockquote> <h1>2.3.0 / 2026-06-15</h1> <ul> <li>Security fix for <a href="https://github.com/expressjs/body-parser/security/advisories/GHSA-v422-hmwv-36x6">GHSA-v422-hmwv-36x6</a></li> <li>fix: use static exports instead of lazy getters to improve ESM compatibility</li> <li>feat: add subpath exports for individual parsers</li> <li>fix: improve <code>limit</code> option validation (<a href="https://redirect.github.com/expressjs/body-parser/issues/698">#698</a>) <ul> <li>Invalid <code>limit</code> values (e.g. unparseable strings or <code>NaN</code>) now throw instead of being silently ignored, which previously disabled size limit enforcement</li> <li><code>null</code> and <code>undefined</code> fall back to the default 100kb limit</li> </ul> </li> <li>deps: <ul> <li>content-type@^2.0.0</li> <li>http-errors@^2.0.1</li> <li>iconv-lite^0.7.2</li> <li>qs@^6.15.2</li> <li>raw-body@^3.0.2</li> <li>type-is@^2.1.0</li> </ul> </li> </ul> <h1>2.2.2 / 2026-01-07</h1> <ul> <li>deps: qs@^6.14.1</li> <li>refactor(json): simplify strict mode error string construction</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/expressjs/body-parser/commit/d0f2ace6c74769da7d19b8661b9a01c01bdb0bf7"><code>d0f2ace</code></a> 2.3.0 (<a href="https://redirect.github.com/expressjs/body-parser/issues/735">#735</a>)</li> <li><a href="https://github.com/expressjs/body-parser/commit/7d03f2f9d561dafd1576b137713353c95253512c"><code>7d03f2f</code></a> chore: updated deps to latest (<a href="https://redirect.github.com/expressjs/body-parser/issues/733">#733</a>)</li> <li><a href="https://github.com/expressjs/body-parser/commit/8024ba7a813e6647ed63832d209a2abb8531267a"><code>8024ba7</code></a> build(deps): bump actions/checkout from 6.0.2 to 6.0.3 (<a href="https://redirect.github.com/expressjs/body-parser/issues/732">#732</a>)</li> <li><a href="https://github.com/expressjs/body-parser/commit/32b4ed4639281f04563adcd41d724ab06c9105d4"><code>32b4ed4</code></a> build(deps): bump github/codeql-action from 4.35.3 to 4.36.1 (<a href="https://redirect.github.com/expressjs/body-parser/issues/731">#731</a>)</li> <li><a href="https://github.com/expressjs/body-parser/commit/ff0f6b907106ec5a1b81c80f5a552d921c1bc9a5"><code>ff0f6b9</code></a> docs: update outdated reference to MDN docs (<a href="https://redirect.github.com/expressjs/body-parser/issues/730">#730</a>)</li> <li><a href="https://github.com/expressjs/body-parser/commit/14d001a9c90abc05891d895ad3e9cf0a65b7b34a"><code>14d001a</code></a> refactor: switch to const/let and enable eslint no-var rule (<a href="https://redirect.github.com/expressjs/body-parser/issues/729">#729</a>)</li> <li><a href="https://github.com/expressjs/body-parser/commit/37f36a27528e65d7216f2c31c7039d3458c72147"><code>37f36a2</code></a> deps: update content-type and type-is (<a href="https://redirect.github.com/expressjs/body-parser/issues/728">#728</a>)</li> <li><a href="https://github.com/expressjs/body-parser/commit/e1c244bf55fb00a6de4be882b4ed9fc20807d864"><code>e1c244b</code></a> build(deps): bump github/codeql-action from 4.35.1 to 4.35.3 (<a href="https://redirect.github.com/expressjs/body-parser/issues/723">#723</a>)</li> <li><a href="https://github.com/expressjs/body-parser/commit/e01087f52192e20e2d0f8726d4f28a8d49d06c87"><code>e01087f</code></a> build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (<a href="https://redirect.github.com/expressjs/body-parser/issues/724">#724</a>)</li> <li><a href="https://github.com/expressjs/body-parser/commit/a7698d30280a3e931ea8841396e5d0ac5414e429"><code>a7698d3</code></a> build(deps): bump actions/setup-node from 6.3.0 to 6.4.0 (<a href="https://redirect.github.com/expressjs/body-parser/issues/725">#725</a>)</li> <li>Additional commits viewable in <a href="https://github.com/expressjs/body-parser/compare/v2.2.1...v2.3.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/microsoft/azure-devops-mcp/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.2 to 3.1.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fastify/fast-uri/releases">fast-uri's releases</a>.</em></p> <blockquote> <h2>v3.1.4</h2> <h2>⚠️ Security Release</h2> <p>Fix for <a href="https://github.com/fastify/fast-uri/security/advisories/GHSA-v2hh-gcrm-f6hx">https://github.com/fastify/fast-uri/security/advisories/GHSA-v2hh-gcrm-f6hx</a></p> <p><strong>Full Changelog</strong>: <a href="https://github.com/fastify/fast-uri/compare/v3.1.3...v3.1.4">https://github.com/fastify/fast-uri/compare/v3.1.3...v3.1.4</a></p> <h2>v3.1.3</h2> <h2>⚠️ Security Release</h2> <ul> <li>Fixes: <a href="https://github.com/fastify/fast-uri/security/advisories/GHSA-4c8g-83qw-93j6">https://github.com/fastify/fast-uri/security/advisories/GHSA-4c8g-83qw-93j6</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.3">https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.3</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fastify/fast-uri/commit/6aeece669e4166b2446a89f17c07a3b15dfb7ed4"><code>6aeece6</code></a> Bumped v3.1.4</li> <li><a href="https://github.com/fastify/fast-uri/commit/2d50fbabc80e4d0884fe0f6a98fe118ce6faa353"><code>2d50fba</code></a> fix: reject literal backslash in URI authority</li> <li><a href="https://github.com/fastify/fast-uri/commit/0549fe35b0d482233f3be2816439f3ec803603fa"><code>0549fe3</code></a> Bumped v3.1.3</li> <li><a href="https://github.com/fastify/fast-uri/commit/2a6d357a18a68e6d812824379fd3388a1ae50d05"><code>2a6d357</code></a> Merge commit from fork</li> <li>See full diff in <a href="https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.4">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/microsoft/azure-devops-mcp/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [hono](https://github.com/honojs/hono) from 4.12.25 to 4.12.32. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/honojs/hono/releases">hono's releases</a>.</em></p> <blockquote> <h2>v4.12.32</h2> <h2>What's Changed</h2> <ul> <li>ci: enable reports for type & bundle size check in <a href="https://redirect.github.com/honojs/hono/pull/5148">honojs/hono#5148</a></li> <li>fix(aws-lambda): add jwt and lambda authorizer types for API Gateway v2 in <a href="https://redirect.github.com/honojs/hono/pull/5142">honojs/hono#5142</a></li> <li>fix(sse): emit empty id field to reset Last-Event-ID in <a href="https://redirect.github.com/honojs/hono/pull/5138">honojs/hono#5138</a></li> <li>test(cloudflare-workers): add coverage for onClose, onError, send, and close in Cloudflare Workers websocket adapter in <a href="https://redirect.github.com/honojs/hono/pull/5145">honojs/hono#5145</a></li> <li>fix: use <code>Object.create(null)</code> when parsing query, headers, and params in <a href="https://redirect.github.com/honojs/hono/pull/5161">honojs/hono#5161</a></li> <li>fix(secure-headers): keep CSP callbacks scoped to their header in <a href="https://redirect.github.com/honojs/hono/pull/5147">honojs/hono#5147</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/honojs/hono/compare/v4.12.31...v4.12.32">https://github.com/honojs/hono/compare/v4.12.31...v4.12.32</a></p> <h2>v4.12.31</h2> <h2>What's Changed</h2> <ul> <li>test(context): assert case-insensitive header names in response helpers by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5116">honojs/hono#5116</a></li> <li>chore(benchmark): add app.fetch() overhead benchmark by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5117">honojs/hono#5117</a></li> <li>refactor(aws-lambada): remove FIXME in <code>@ts-expect-error</code> by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5130">honojs/hono#5130</a></li> <li>fix(utils/body): reuse cached formData in <code>parseBody()</code> by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5131">honojs/hono#5131</a></li> <li>fix(request): fix multipart boundary mismatch in <code>cloneRawRequest</code> by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5133">honojs/hono#5133</a></li> <li>fix(sse): emit retry feild when retry is <code>0</code> by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5135">honojs/hono#5135</a></li> <li>test(validator): fix misspelled identifier in transform type test by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5136">honojs/hono#5136</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/honojs/hono/compare/v4.12.30...v4.12.31">https://github.com/honojs/hono/compare/v4.12.30...v4.12.31</a></p> <h2>v4.12.30</h2> <h2>What's Changed</h2> <ul> <li>chore(benchmark/routers): bump deps in <a href="https://redirect.github.com/honojs/hono/pull/5107">honojs/hono#5107</a></li> <li>chore(benchmark): remove not used benchmarks in <a href="https://redirect.github.com/honojs/hono/pull/5108">honojs/hono#5108</a></li> <li>chore: update to ts6 in prep for ts7 in <a href="https://redirect.github.com/honojs/hono/pull/5104">honojs/hono#5104</a></li> <li>fix(cache): deduplicate Cache-Control directives case-insensitively in <a href="https://redirect.github.com/honojs/hono/pull/5025">honojs/hono#5025</a></li> <li>fix(compress): do not compress 206 Partial Content responses in <a href="https://redirect.github.com/honojs/hono/pull/5020">honojs/hono#5020</a></li> <li>fix(client): replaceUrlParam should not match a param that prefixes another in <a href="https://redirect.github.com/honojs/hono/pull/5096">honojs/hono#5096</a></li> <li>fix(method-override): set duplex when forwarding a stream body in query mode in <a href="https://redirect.github.com/honojs/hono/pull/5110">honojs/hono#5110</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/honojs/hono/compare/v4.12.29...v4.12.30">https://github.com/honojs/hono/compare/v4.12.29...v4.12.30</a></p> <h2>v4.12.29</h2> <h2>What's Changed</h2> <ul> <li>fix(client): merge function headers with per-request headers by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5092">honojs/hono#5092</a></li> <li>chore: fix no-op tsc in test script by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5093">honojs/hono#5093</a></li> <li>fix(lambda-edge): resolve the handler with the value passed to the callback by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5094">honojs/hono#5094</a></li> <li>docs(language): add JSDoc <a href="https://github.com/example"><code>@example</code></a> to languageDetector by <a href="https://github.com/codebybilal18"><code>@codebybilal18</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5081">honojs/hono#5081</a></li> <li>test(workerd): add <code>compatibilityDate</code> by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5100">honojs/hono#5100</a></li> <li>fix(lambda-edge): base64 encode content-encoded response bodies by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5099">honojs/hono#5099</a></li> <li>fix(aws-lambda): treat any non-identity content-encoding as binary by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5101">honojs/hono#5101</a></li> <li>fix(types): strip extra properties from array types in JSONParsed by <a href="https://github.com/Arman-Luthra"><code>@Arman-Luthra</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5103">honojs/hono#5103</a></li> <li>fix(trie-router): match empty wildcard remainder after regexp param by <a href="https://github.com/usualoma"><code>@usualoma</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5102">honojs/hono#5102</a></li> <li>fix(etag): treat If-None-Match: <code>*</code> as a match by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/5084">honojs/hono#5084</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/codebybilal18"><code>@codebybilal18</code></a> made their first contribution in <a href="https://redirect.github.com/honojs/hono/pull/5081">honojs/hono#5081</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/honojs/hono/commit/26d8e42bfff7eb78fc323a01e1d02d63b9dbcc72"><code>26d8e42</code></a> 4.12.32</li> <li><a href="https://github.com/honojs/hono/commit/402eb3abe561914f41ee0f8e37f1d7f211f1ee51"><code>402eb3a</code></a> fix(secure-headers): keep CSP callbacks scoped to their header (<a href="https://redirect.github.com/honojs/hono/issues/5147">#5147</a>)</li> <li><a href="https://github.com/honojs/hono/commit/c85aead088659b98b8d05a1187a07d064e12ffe6"><code>c85aead</code></a> fix: use <code>Object.create(null)</code> when parsing query, headers, and params (<a href="https://redirect.github.com/honojs/hono/issues/5161">#5161</a>)</li> <li><a href="https://github.com/honojs/hono/commit/a88c89dac6e230cbb5f1bf627522d4914b81dffd"><code>a88c89d</code></a> test(cloudflare-workers): add coverage for onClose, onError, send, and close ...</li> <li><a href="https://github.com/honojs/hono/commit/44f884321a1d52e98d45a85634da9d5f4751a43a"><code>44f8843</code></a> fix(sse): emit empty id field to reset Last-Event-ID (<a href="https://redirect.github.com/honojs/hono/issues/5138">#5138</a>)</li> <li><a href="https://github.com/honojs/hono/commit/e36f57dac0615c1bdd03ff1975b6ca8d3dc5917f"><code>e36f57d</code></a> fix(aws-lambda): add jwt and lambda authorizer types for API Gateway v2 (<a href="https://redirect.github.com/honojs/hono/issues/5142">#5142</a>)</li> <li><a href="https://github.com/honojs/hono/commit/bf8608cb77f91c3768311d9977f807ec2f3fd6b9"><code>bf8608c</code></a> ci: enable reports for type & bundle size check (<a href="https://redirect.github.com/honojs/hono/issues/5148">#5148</a>)</li> <li><a href="https://github.com/honojs/hono/commit/cadff88bba34153646c9b35f24d7cc0cb61be913"><code>cadff88</code></a> 4.12.31</li> <li><a href="https://github.com/honojs/hono/commit/64c613ab0f15526b0c0edb25ad0c2989eace2ea1"><code>64c613a</code></a> test(validator): fix misspelled identifier in transform type test (<a href="https://redirect.github.com/honojs/hono/issues/5136">#5136</a>)</li> <li><a href="https://github.com/honojs/hono/commit/aeba9ece778fb24953816fd3517858ff80de958f"><code>aeba9ec</code></a> fix(sse): emit retry feild when retry is <code>0</code> (<a href="https://redirect.github.com/honojs/hono/issues/5135">#5135</a>)</li> <li>Additional commits viewable in <a href="https://github.com/honojs/hono/compare/v4.12.25...v4.12.32">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for hono since your current version.</p> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/microsoft/azure-devops-mcp/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marcelo Novaes <novaes.ssa@gmail.com>
…n usage (microsoft#1455) ## Description and usage Updates the `testplan` tool description to explain how to retrieve additional paginated batches. When a response includes a `continuationToken`, callers should pass it back with the same action and query parameters to fetch the next batch. This addresses scenarios where only the first 200 test cases are read. No runtime behavior was changed. Even before this change, capable agents could inspect the returned `continuationToken` and fetch subsequent batches. This update only makes that pagination workflow explicit in the tool description, ensuring agents consistently retrieve all results rather than stopping after the first batch. ## GitHub issue number N/A ## **Associated Risks** Low risk. This is a tool-description-only change and does not modify API calls, pagination logic, or response formats. ## ✅ **PR Checklist** - [ ] **I have read the [[contribution guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)** - [ ] **I have read the [[code of conduct guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)** - [x] Title of the pull request is clear and informative. - [x] 👌 Code hygiene - [x] 🔭 Telemetry added, updated, or N/A - [x] 📄 Documentation added, updated, or N/A - [x] 🛡️ Automated tests added, or N/A ## 🧪 **How did you test it?** All tests running successfully. Co-authored-by: Dan Hellem <dahellem@microsoft.com>
microsoft#1463) This pull request updates the `README.md` to streamline the messaging around the Remote MCP Server and clarify onboarding instructions. The main changes remove outdated preview information and internal-only warnings, and emphasize the official onboarding documentation for all users. **Documentation updates:** * Removed the note about the Remote MCP Server being in public preview and the related recommendation to migrate, simplifying the introduction and focusing on the migration guidance. * Updated the "Remote MCP Server" section to point directly to the official onboarding documentation, removing the public preview announcement and the internal-only warning for Microsoft users. ## GitHub issue number N/A ## **Associated Risks** None ## ✅ **PR Checklist** - [x] **I have read the [contribution guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)** - [x] **I have read the [code of conduct guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)** - [x] Title of the pull request is clear and informative. - [x] 👌 Code hygiene - [x] 🔭 Telemetry added, updated, or N/A - [x] 📄 Documentation added, updated, or N/A - [x] 🛡️ Automated tests added, or N/A ## 🧪 **How did you test it?** manual review of docs
New version for publishing
Update https://docs.github.com/en/code-security/reference/supply-chain-security/dependabot-options-reference#cooldown- To agreed settings aligned internally.
) This pull request adds support for creating and managing "hyperlink" links on work items, in addition to existing work item link types. The changes include updates to the schema, validation logic, and handler implementation to properly handle hyperlinks, as well as new tests to verify this functionality. **Support for hyperlink links:** * Added "hyperlink" as a valid link type in the schema for linking and unlinking work items in `configureWorkItemTools`, and updated the `getLinkTypeFromName` function to return the correct relation type for hyperlinks. [[1]](diffhunk://#diff-ceebe3f2554b2fdf7c02d32394ee2293ac80b4c51ee0f3bd05f5f633ec4d0311R51-R52) [[2]](diffhunk://#diff-ceebe3f2554b2fdf7c02d32394ee2293ac80b4c51ee0f3bd05f5f633ec4d0311L841-R846) [[3]](diffhunk://#diff-ceebe3f2554b2fdf7c02d32394ee2293ac80b4c51ee0f3bd05f5f633ec4d0311L854-R857) * Updated the handler logic to require a `url` when adding a hyperlink and to require `linkToId` for other link types, with appropriate error messages if these fields are missing. **Testing and validation:** * Added tests to ensure hyperlinks can be added, that a URL is required for hyperlinks, and that `linkToId` is required for non-hyperlink links. * Imported `zod` in the test file to enable schema validation in tests. ## GitHub issue number microsoft#1447 ## **Associated Risks** N/A ## ✅ **PR Checklist** - [x] **I have read the [contribution guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)** - [x] **I have read the [code of conduct guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)** - [x] Title of the pull request is clear and informative. - [x] 👌 Code hygiene - [x] 🔭 Telemetry added, updated, or N/A - [x] 📄 Documentation added, updated, or N/A - [x] 🛡️ Automated tests added, or N/A ## 🧪 **How did you test it?** manual testing and automated test updates
…crosoft#1476) This pull request updates the `README.md` to reflect a recent tool consolidation and renaming, and provides guidance about breaking changes and version pinning. It also reorganizes the important notices for clarity. Documentation updates: * Added a warning about the full tool consolidation and renaming, with a reference to the new toolset documentation (`docs/TOOLSET.md`). * Provided instructions for users affected by breaking changes to pin to version `@azure-devops/mcp@2.8.1`. * Reorganized the important notices, moving the recommendation to use the Remote MCP Server further down and clarifying the messaging. ## GitHub issue number N/A ## **Associated Risks** None ## ✅ **PR Checklist** - [ ] **I have read the [contribution guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)** - [ ] **I have read the [code of conduct guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)** - [ ] Title of the pull request is clear and informative. - [ ] 👌 Code hygiene - [ ] 🔭 Telemetry added, updated, or N/A - [ ] 📄 Documentation added, updated, or N/A - [ ] 🛡️ Automated tests added, or N/A ## 🧪 **How did you test it?** None
Bumps [hono](https://github.com/honojs/hono) from 4.12.32 to 4.13.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/honojs/hono/releases">hono's releases</a>.</em></p> <blockquote> <h2>v4.13.0</h2> <p>Hono v4.13.0 is now available!</p> <p>The highlight of this release is performance: a batch of low-level optimizations makes the core request/response path significantly faster — up to 1.25x on common routes in our benchmark. This release also adds first-class support for the HTTP QUERY method, defined in <a href="https://www.rfc-editor.org/rfc/rfc10008.html">RFC 10008</a>, a new Method Not Allowed middleware, and more.</p> <h2>Performance improvements</h2> <p>This release includes a series of small optimizations: skipping unnecessary <code>Headers</code> allocations, replacing regex tests with <code>indexOf</code>, allocating internal state lazily, and more.</p> <p>Here is <a href="https://github.com/honojs/hono/tree/main/benchmarks/fetch"><code>benchmarks/fetch</code></a> comparing v4.12 and v4.13 (<code>ROUNDS=5 ./compare.sh</code>, Bun 1.4.0, Apple Silicon — each measurement runs in a fresh process, and the variant order is reversed every round to avoid warm-up bias):</p> <table> <thead> <tr> <th>Benchmark</th> <th align="right">v4.12</th> <th align="right">v4.13</th> <th align="right">Speedup</th> </tr> </thead> <tbody> <tr> <td><code>ping</code> — <code>GET /</code></td> <td align="right">165.83 ns</td> <td align="right">163.99 ns</td> <td align="right">1.01x</td> </tr> <tr> <td><code>query</code> — <code>GET /id/1?name=bun</code></td> <td align="right">674.40 ns</td> <td align="right">616.99 ns</td> <td align="right"><strong>1.09x</strong></td> </tr> <tr> <td><code>json</code> — <code>GET /user</code></td> <td align="right">528.99 ns</td> <td align="right">422.44 ns</td> <td align="right"><strong>1.25x</strong></td> </tr> <tr> <td><code>body</code> — <code>POST /json</code></td> <td align="right">1.16 µs</td> <td align="right">1.00 µs</td> <td align="right"><strong>1.15x</strong></td> </tr> </tbody> </table> <p>The individual changes:</p> <ul> <li>perf(context): iterate the header record with <code>for..in</code> <a href="https://redirect.github.com/honojs/hono/pull/5118">honojs/hono#5118</a></li> <li>perf(url): replace regex tests with <code>indexOf</code> <a href="https://redirect.github.com/honojs/hono/pull/5121">honojs/hono#5121</a></li> <li>perf(context): skip <code>Headers</code> creation when there are no headers to merge <a href="https://redirect.github.com/honojs/hono/pull/5122">honojs/hono#5122</a></li> <li>perf(urls): refactor <code>tryDecodeURIComponent</code> <a href="https://redirect.github.com/honojs/hono/pull/5158">honojs/hono#5158</a></li> <li>perf(request): allocate <code>#validatedData</code> lazily <a href="https://redirect.github.com/honojs/hono/pull/5175">honojs/hono#5175</a></li> <li>perf(request): probe the body cache without allocating <a href="https://redirect.github.com/honojs/hono/pull/5176">honojs/hono#5176</a></li> </ul> <p>In addition, the RegExpRouter rewrite described below makes route registration plus the first match roughly 20% faster.</p> <p>Thanks <a href="https://github.com/kibertoad"><code>@kibertoad</code></a> for the contributions!</p> <h2>First-class QUERY method support</h2> <p>The QUERY method — a safe, idempotent method that carries a request body — is now a first-class citizen in Hono. You can define QUERY handlers with <code>app.query()</code>:</p> <pre lang="ts"><code>const app = new Hono() <p>app.query('/search', async (c) => {<br /> const conditions = await c.req.json()<br /> return c.json(await search(conditions))<br /> })<br /> </code></pre></p> <p>Thanks <a href="https://github.com/shellhaki"><code>@shellhaki</code></a>!</p> <h2>QUERY support across built-in middleware</h2> <p>The built-in middleware has been updated to handle QUERY requests properly:</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/honojs/hono/commit/192768fbaf9aa99a45404dc2f171541227c11d20"><code>192768f</code></a> 4.13.0</li> <li><a href="https://github.com/honojs/hono/commit/b0c2d90eb07fefa6c06dc556c97ed8ecffc8b2c0"><code>b0c2d90</code></a> Merge pull request <a href="https://redirect.github.com/honojs/hono/issues/5154">#5154</a> from honojs/next</li> <li><a href="https://github.com/honojs/hono/commit/8f0702827002f0ada02434d908853458c17f862d"><code>8f07028</code></a> fix(compress): set Vary: Accept-Encoding on negotiated responses (<a href="https://redirect.github.com/honojs/hono/issues/5137">#5137</a>)</li> <li><a href="https://github.com/honojs/hono/commit/8a0b18fd9b4d64dd2eb1d7f18e3536fc06cb54b2"><code>8a0b18f</code></a> feat(reg-exp-router): throw UnsupportedPathError during route registration (#...</li> <li><a href="https://github.com/honojs/hono/commit/3feb3551d46de1f633e82253f12cf1117316be93"><code>3feb355</code></a> fix(jsx): allow a function component to return an array (<a href="https://redirect.github.com/honojs/hono/issues/5179">#5179</a>)</li> <li><a href="https://github.com/honojs/hono/commit/5d911d2ab7bcb2adb2e974ddd5b17742fb5a0bca"><code>5d911d2</code></a> feat(utils/headers): add HTTP fields newly registered with IANA (<a href="https://redirect.github.com/honojs/hono/issues/5153">#5153</a>)</li> <li><a href="https://github.com/honojs/hono/commit/30277aee0ddd96b643a4958d6102abe6e54d9a29"><code>30277ae</code></a> feat(jwt,jwk): add a configurable WWW-Authenticate realm (<a href="https://redirect.github.com/honojs/hono/issues/5141">#5141</a>)</li> <li><a href="https://github.com/honojs/hono/commit/1f707c56378a4497bc0a6a44fef5f5a8517fdf6b"><code>1f707c5</code></a> feat(middleware): add method-not-allowed middleware (<a href="https://redirect.github.com/honojs/hono/issues/5132">#5132</a>)</li> <li><a href="https://github.com/honojs/hono/commit/2df0b47659165c6403abda5512ecf21541409a62"><code>2df0b47</code></a> feat(jsx): add React-compatible overloads to useRef (<a href="https://redirect.github.com/honojs/hono/issues/5063">#5063</a>)</li> <li><a href="https://github.com/honojs/hono/commit/3bc96ba915bf8d5b25430c955aec8f7df500ff21"><code>3bc96ba</code></a> feat(cache): add first-class support for QUERY requests (<a href="https://redirect.github.com/honojs/hono/issues/5119">#5119</a>)</li> <li>Additional commits viewable in <a href="https://github.com/honojs/hono/compare/v4.12.32...v4.13.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/microsoft/azure-devops-mcp/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.4 to 3.1.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fastify/fast-uri/releases">fast-uri's releases</a>.</em></p> <blockquote> <h2>v3.1.5</h2> <h2>⚠️ Security Warning</h2> <p>Fix for <a href="https://github.com/fastify/fast-uri/security/advisories/GHSA-7p8r-x3mc-p8w7">https://github.com/fastify/fast-uri/security/advisories/GHSA-7p8r-x3mc-p8w7</a></p> <p><strong>Full Changelog</strong>: <a href="https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.5">https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.5</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/fastify/fast-uri/commit/5e179cbb4636d5f773ed21126e5bd3068e87e94e"><code>5e179cb</code></a> Bumped v3.1.5</li> <li><a href="https://github.com/fastify/fast-uri/commit/2cad02d6ed428a720499bb7a3c3d6c3d41f10f5a"><code>2cad02d</code></a> Merge commit from fork</li> <li>See full diff in <a href="https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.5">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/microsoft/azure-devops-mcp/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.2.0 to 10.4.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/beaugunderson/ip-address/releases">ip-address's releases</a>.</em></p> <blockquote> <h2>v10.4.0</h2> <h2>What's Changed</h2> <ul> <li>Add GitHub Actions CI by <a href="https://github.com/beaugunderson"><code>@beaugunderson</code></a> in <a href="https://redirect.github.com/beaugunderson/ip-address/pull/213">beaugunderson/ip-address#213</a></li> <li>Keep the package loadable on node 12, and enforce it by <a href="https://github.com/beaugunderson"><code>@beaugunderson</code></a> in <a href="https://redirect.github.com/beaugunderson/ip-address/pull/216">beaugunderson/ip-address#216</a></li> <li>Validate the byte arrays Address6 is given by <a href="https://github.com/beaugunderson"><code>@beaugunderson</code></a> in <a href="https://redirect.github.com/beaugunderson/ip-address/pull/217">beaugunderson/ip-address#217</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/beaugunderson/ip-address/compare/v10.3.1...v10.4.0">https://github.com/beaugunderson/ip-address/compare/v10.3.1...v10.4.0</a></p> <h2>v10.3.1</h2> <p><strong>Full Changelog</strong>: <a href="https://github.com/beaugunderson/ip-address/compare/v10.3.0...v10.3.1">https://github.com/beaugunderson/ip-address/compare/v10.3.0...v10.3.1</a></p> <h2>v10.3.0</h2> <p><strong>Full Changelog</strong>: <a href="https://github.com/beaugunderson/ip-address/compare/v10.2.2...v10.3.0">https://github.com/beaugunderson/ip-address/compare/v10.2.2...v10.3.0</a></p> <h2>v10.2.2</h2> <p><strong>Full Changelog</strong>: <a href="https://github.com/beaugunderson/ip-address/compare/v10.2.1...v10.2.2">https://github.com/beaugunderson/ip-address/compare/v10.2.1...v10.2.2</a></p> <h2>v10.2.1</h2> <p><strong>Full Changelog</strong>: <a href="https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.2.1">https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.2.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/beaugunderson/ip-address/commit/fbb8db28f1559842b7191cab7d8ea6408ed82f7b"><code>fbb8db2</code></a> 10.4.0</li> <li><a href="https://github.com/beaugunderson/ip-address/commit/45a2b11ec254a2e5620de66e248adcb33d16e669"><code>45a2b11</code></a> Validate the byte arrays Address6 is given (<a href="https://redirect.github.com/beaugunderson/ip-address/issues/217">#217</a>)</li> <li><a href="https://github.com/beaugunderson/ip-address/commit/bac8810b3935cab123316a4bc5ebaa22db140299"><code>bac8810</code></a> Keep the package loadable on node 12, and enforce it (<a href="https://redirect.github.com/beaugunderson/ip-address/issues/216">#216</a>)</li> <li><a href="https://github.com/beaugunderson/ip-address/commit/9b3d8488d15e6bfe5f5503867b088ce056723e08"><code>9b3d848</code></a> Add a security policy and a README section on security posture</li> <li><a href="https://github.com/beaugunderson/ip-address/commit/e84a7b381d02cb97ed114023e44133efae151254"><code>e84a7b3</code></a> Order the README API reference Address4, Address6, AddressError</li> <li><a href="https://github.com/beaugunderson/ip-address/commit/015160b85ee60b39548219817a5de3c4e828a6d6"><code>015160b</code></a> Collapse each class in the README API reference</li> <li><a href="https://github.com/beaugunderson/ip-address/commit/34061a897d526b7a063c3605402cd30a8363a035"><code>34061a8</code></a> Pin checkout and setup-node to commits in the release job</li> <li><a href="https://github.com/beaugunderson/ip-address/commit/c5fae5d9bdfe8ded7f4ca01a3d3ea8d97f8f1277"><code>c5fae5d</code></a> Pin action-gh-release to a commit and move it to 3.0.2</li> <li><a href="https://github.com/beaugunderson/ip-address/commit/e0ef0484193218b0d28cfbb53795bc44ddb3cc21"><code>e0ef048</code></a> Replace CircleCI with GitHub Actions</li> <li><a href="https://github.com/beaugunderson/ip-address/commit/5e3ceb779aee6ad3f33264e66225e8e7584ab612"><code>5e3ceb7</code></a> Add GitHub Actions CI across Node 20, 22, 24 and 25 (<a href="https://redirect.github.com/beaugunderson/ip-address/issues/213">#213</a>)</li> <li>Additional commits viewable in <a href="https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.4.0">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for ip-address since your current version.</p> </details> <details> <summary>Install script changes</summary> <p>This version adds <code>prepare</code> script that runs during installation. Review the package contents before updating.</p> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/microsoft/azure-devops-mcp/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.4.11 to 29.4.12. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/kulshekhar/ts-jest/releases">ts-jest's releases</a>.</em></p> <blockquote> <h2>v29.4.12</h2> <p>Please refer to <a href="https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md">CHANGELOG.md</a> for details.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md">ts-jest's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/kulshekhar/ts-jest/compare/v29.4.11...v29.4.12">29.4.12</a> (2026-07-22)</h2> <h3>Features</h3> <ul> <li><strong>compiler:</strong> support TypeScript 7 projects through compatibility aliases (<a href="https://redirect.github.com/kulshekhar/ts-jest/pull/5386">#5386</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/kulshekhar/ts-jest/commit/3f05625da10da954fdf0a10394385008275ddbb3"><code>3f05625</code></a> chore(release): 29.4.12</li> <li><a href="https://github.com/kulshekhar/ts-jest/commit/df28b27f2e60edf275866763a3cdf745360d3eae"><code>df28b27</code></a> docs: clarify TypeScript version prerequisites</li> <li><a href="https://github.com/kulshekhar/ts-jest/commit/c8a614af419b1dcc90f3d1a7a48238ac1b637e6b"><code>c8a614a</code></a> docs: mention TypeScript 7 setup in README</li> <li><a href="https://github.com/kulshekhar/ts-jest/commit/06c79d4cebfa785749b2f96ef2dbeffc12798c47"><code>06c79d4</code></a> fix: address TypeScript 7 review feedback</li> <li><a href="https://github.com/kulshekhar/ts-jest/commit/f10746008e512203ad7d8c581e2c58cc7dcd43c8"><code>f107460</code></a> docs: explain TypeScript 7 compatibility setup</li> <li><a href="https://github.com/kulshekhar/ts-jest/commit/33882274c1e4fc3a06cece3b21f4873182c8fee7"><code>3388227</code></a> test(e2e): add TypeScript compatibility matrix</li> <li><a href="https://github.com/kulshekhar/ts-jest/commit/891dc731ff9f31785ad9698e4d7cfa6078991fe6"><code>891dc73</code></a> fix(compiler): support TypeScript 7 compatibility aliases</li> <li><a href="https://github.com/kulshekhar/ts-jest/commit/eb135ebe819991b1e10c998915cc6db2057c4de1"><code>eb135eb</code></a> build(deps-dev): bump shell-quote from 1.8.4 to 1.10.0 in /examples</li> <li><a href="https://github.com/kulshekhar/ts-jest/commit/d5d80a34bc575be130db2b9f5cd0958173982cda"><code>d5d80a3</code></a> ci: pin google osv scan action at v2.3.5</li> <li><a href="https://github.com/kulshekhar/ts-jest/commit/6bf293f0a4ddf468735d81fcdf04f923278e030c"><code>6bf293f</code></a> build(deps): bump shell-quote from 1.8.4 to 1.10.0 in /website</li> <li>Additional commits viewable in <a href="https://github.com/kulshekhar/ts-jest/compare/v29.4.11...v29.4.12">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…rosoft#1495) This pull request introduces enhancements to work item comment handling, particularly for resolving email mentions to Azure DevOps identities, and expands test coverage for authentication and comment mention resolution. The most important changes are summarized below. ### Work Item Comment Mention Resolution * Added a new function `resolveCommentMentions` in `src/tools/work-items.ts` that detects email mentions in the format `@<email>` within work item comments and replaces them with Azure DevOps identity IDs or HTML mention tags, depending on the comment format. If an identity cannot be resolved, the mention is escaped and shown as visible text. * Updated the work item comment write and update logic to use the resolved mentions before sending the comment to the server, ensuring consistent mention formatting and identity resolution. [[1]](diffhunk://#diff-ceebe3f2554b2fdf7c02d32394ee2293ac80b4c51ee0f3bd05f5f633ec4d0311R809) [[2]](diffhunk://#diff-ceebe3f2554b2fdf7c02d32394ee2293ac80b4c51ee0f3bd05f5f633ec4d0311L781-R821) [[3]](diffhunk://#diff-ceebe3f2554b2fdf7c02d32394ee2293ac80b4c51ee0f3bd05f5f633ec4d0311L804-R844) ### Identity Lookup Enhancements * Refactored identity lookup logic: introduced `getUserIdentityFromEmail` in `src/tools/auth.ts` to return both the user ID and display name, and updated `getUserIdFromEmail` to use this new function. Exported `getUserIdentityFromEmail` for use in work item tools. [[1]](diffhunk://#diff-0f6a40b4809bfc8010e8bbd5731668bbf918c90c25fc5f1682f0000701b76265L62-R67) [[2]](diffhunk://#diff-0f6a40b4809bfc8010e8bbd5731668bbf918c90c25fc5f1682f0000701b76265L77-R90) * Updated imports in `src/tools/work-items.ts` to use the new identity lookup function. ### Test Coverage Improvements * Added comprehensive tests in `test/src/tools/work-items.test.ts` to verify mention resolution in both Markdown and HTML formats, handling of unresolved mentions, and repeated mentions. [[1]](diffhunk://#diff-1ed6ae5f1c97b40dd2e906035bca44eddce5d0045d8e1807ffba699ef1892be6R901-R927) [[2]](diffhunk://#diff-1ed6ae5f1c97b40dd2e906035bca44eddce5d0045d8e1807ffba699ef1892be6R945-R986) [[3]](diffhunk://#diff-1ed6ae5f1c97b40dd2e906035bca44eddce5d0045d8e1807ffba699ef1892be6R1123-R1149) * Enhanced authentication tests in `test/src/pat-auth.test.ts` to cover environment variable, Azure credential, and OAuth authentication flows, including error handling and credential resets. [[1]](diffhunk://#diff-12d48a14aa809fe1cf3baa0946feb4080af042054720beb7e09eefc00bfc8b74R6-R8) [[2]](diffhunk://#diff-12d48a14aa809fe1cf3baa0946feb4080af042054720beb7e09eefc00bfc8b74R38-R42) [[3]](diffhunk://#diff-12d48a14aa809fe1cf3baa0946feb4080af042054720beb7e09eefc00bfc8b74R92-R194) ## GitHub issue number microsoft#1494 ## **Associated Risks** Change in behavior ## ✅ **PR Checklist** - [x] **I have read the [contribution guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)** - [x] **I have read the [code of conduct guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)** - [x] Title of the pull request is clear and informative. - [x] 👌 Code hygiene - [x] 🔭 Telemetry added, updated, or N/A - [x] 📄 Documentation added, updated, or N/A - [x] 🛡️ Automated tests added, or N/A ## 🧪 **How did you test it?** Multiple manual tests and updated automated tests
…#1498) This pull request adds support for reordering work items in Azure DevOps backlogs and iterations through the `wit_backlog` tool. It introduces a new `reorder` action, updates the tool interface and documentation, and provides comprehensive tests to ensure correct behavior and error handling. ### Feature: Work Item Reordering * Added a new `reorder` action to the `wit_backlog` tool, allowing users to reorder work items in either a team backlog or a specific iteration. This includes new parameters such as `ids`, `previousId`, `nextId`, `parentId`, `iterationPath`, and `iterationId` to specify the details of the reorder operation. [[1]](diffhunk://#diff-ceebe3f2554b2fdf7c02d32394ee2293ac80b4c51ee0f3bd05f5f633ec4d0311L377-R397) [[2]](diffhunk://#diff-ceebe3f2554b2fdf7c02d32394ee2293ac80b4c51ee0f3bd05f5f633ec4d0311R431-R446) * Updated the documentation in `TOOLSET.md` to describe the new `reorder` action and its usage. ### Testing and Mocks * Extended the `WorkApiMock` interface and test setup to include `reorderBacklogWorkItems` and `reorderIterationWorkItems` mocks, ensuring the new functionality is properly tested. [[1]](diffhunk://#diff-1ed6ae5f1c97b40dd2e906035bca44eddce5d0045d8e1807ffba699ef1892be6R35-R36) [[2]](diffhunk://#diff-1ed6ae5f1c97b40dd2e906035bca44eddce5d0045d8e1807ffba699ef1892be6R80-R81) * Added comprehensive test cases covering successful reordering in both backlogs and iterations, missing required parameters, and API error handling for the `reorder` action. ## GitHub issue number microsoft#1486 ## **Associated Risks** None ## ✅ **PR Checklist** - [x] **I have read the [contribution guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CONTRIBUTING.md)** - [x] **I have read the [code of conduct guidelines](https://github.com/microsoft/azure-devops-mcp/blob/main/CODE_OF_CONDUCT.md)** - [x] Title of the pull request is clear and informative. - [x] 👌 Code hygiene - [x] 🔭 Telemetry added, updated, or N/A - [x] 📄 Documentation added, updated, or N/A - [x] 🛡️ Automated tests added, or N/A ## 🧪 **How did you test it?** Ran several manual tests. Updated automated tests,
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Snapshot WarningsEnsure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice. OpenSSF Scorecard
Scanned Files
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.