Repository navigation
Conversation
Contributor
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
3 open issues
This error drops the upstream response body, which often contains the actionable reason (e.g.,… · New For on-prem connections,orgIdmay still be non-empty when parsing previously-saved scope IDs… · New PassingsetError={(error) => setErrors({ endpoint: error })}risks clobbering errors from other… · New
What changed in this PR
Restores Azure DevOps Go plugin compatibility with on-premises Azure DevOps Server by fixing connection form hydration/validation, aligning on-prem URL behavior, and negotiating REST API versions automatically.
Changes:
- Frontend: make username optional for Azure DevOps Go, restore saved on-prem endpoint + Cloud/Server mode, and validate endpoint requirement in Server mode.
- Backend: implement on-prem REST API version negotiation (7.2→7.1→7.0→6.0), adjust request URL construction/pagination, and make connection tests fail on project fetch errors.
- Tests/docs: add regression tests for frontend form behavior and backend version negotiation + on-prem request contracts; update plugin README.
| File | Description |
|---|---|
| config-ui/src/plugins/register/azure/connection-fields/connection.test.tsx | Adds UI regression tests for optional username and endpoint/mode hydration. |
| config-ui/src/plugins/register/azure/connection-fields/base-url.tsx | Adds Cloud/Server toggle with endpoint hydration and on-prem endpoint validation. |
| config-ui/src/plugins/register/azure/config.tsx | Wires new BaseURL props and makes username optional for Azure DevOps Go connections. |
| config-ui/src/plugins/components/connection-form/fields/username.tsx | Adds required prop to support optional username behavior. |
| backend/plugins/azuredevops_go/tasks/shared_test.go | Adds test ensuring cursor pagination does not send offset parameters. |
| backend/plugins/azuredevops_go/tasks/shared.go | Fixes paginator to avoid $skip when using cursor mode. |
| backend/plugins/azuredevops_go/tasks/ci_cd_timeline_records_collector.go | Removes pagination query from build timeline requests. |
| backend/plugins/azuredevops_go/models/connection_test.go | Adds tests for API-version negotiation and Cloud preview preservation. |
| backend/plugins/azuredevops_go/models/api_version.go | Implements on-prem API-family detection + per-resource preview version mapping. |
| backend/plugins/azuredevops_go/impl/impl.go | Clears org prefix for on-prem connections during task preparation. |
| backend/plugins/azuredevops_go/api/remote_helper_test.go | Adds test ensuring on-prem scope discovery ignores Cloud organization. |
| backend/plugins/azuredevops_go/api/remote_helper.go | Adjusts org handling for on-prem and parent-id composition. |
| backend/plugins/azuredevops_go/api/connection_api.go | Makes on-prem Test Connection fail when project fetch fails. |
| backend/plugins/azuredevops_go/api/azuredevops/client_onprem_test.go | Adds cross-version on-prem request contract tests + upstream error test. |
| backend/plugins/azuredevops_go/api/azuredevops/client.go | Escapes path segments, adds continuation-token support, and improves on-prem URL building. |
| backend/plugins/azuredevops_go/README.md | Updates documentation for on-prem behavior, version negotiation, and endpoint compatibility. |
Review effort: Lite
Copilot stopped reviewing on behalf of
keremoge due to an error
November 12, 2026 12:11
…rieval and improve test coverage
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.

pr-type/bug-fix,pr-type/feature-development, etc.Summary
Fix Azure DevOps Go connection configuration, connection testing, and REST API compatibility for on-premises Azure DevOps Server installations.
Why this PR is needed
Several related issues made on-premises connections unreliable:
This PR addresses these issues together so that the connection form, connection test, scope discovery, and collection requests use a consistent on-premises configuration.
Connection form fixes
Automatic API-version negotiation
VssVersionNotSupportedExceptionVssVersionOutOfRangeExceptionNo version-selection field, connection-schema change, or database migration is introduced.
Request compatibility and collection fixes
6.0-preview.46.0-preview.1Scope and compatibility
Does this close any open issues?
No linked issue.
Screenshots
No screenshots attached. Connection-form regression tests cover optional username, saved endpoint/deployment-mode restoration, and Cloud/Server switching.
Other Information
Automated validation
Backend commands were executed from the backend directory using Dockerized Go tooling:
go test -race ./plugins/azuredevops_go/models ./plugins/azuredevops_go/api/... ./plugins/azuredevops_go/tasks— passedgo vet ./plugins/azuredevops_go/models ./plugins/azuredevops_go/api/... ./plugins/azuredevops_go/tasks— passedgo build ./plugins/azuredevops_go/...— passedgolangci-lint run ./plugins/azuredevops_go/...— passed, 0 issuesFrontend commands were executed from the config-ui directory:
node .yarn\releases\yarn-4.17.0.cjs test src/plugins/register/azure/connection-fields/connection.test.tsx— passed, 4 testsnode .yarn\releases\yarn-4.17.0.cjs exec tsc --noEmit— passednode .yarn\releases\yarn-4.17.0.cjs exec eslint src/plugins/components/connection-form/fields/username.tsx src/plugins/register/azure/config.tsx src/plugins/register/azure/connection-fields/base-url.tsx src/plugins/register/azure/connection-fields/connection.test.tsx— passedRepository checks:
git diff --check— passedgit diff --cached --check— passedRegression coverage includes request contracts for nine operations across all four API families, authenticated fallback, failure handling, on-premises URL construction, pagination, and Cloud preview-version preservation.
Manual verification
Limitations and operational notes