github / github/gh-gei

Pipeline rewiring not working for githubenterprise

Open
#1,496 2 comments 1 reaction 0 assignees View on GitHub
bug
Dominant language
C#
Stars
478
Forks
146
Avg merge
7d 21h
Merged PRs (30d)
2

Description

## Description

When running:

```pwsh
ado2gh test-pipelines `
--ado-org $env:ADO_ORG `
--ado-team-project $env:ADO_TEAM_PROJECT `
--github-org $env:GH_ORG `
--target-api-url $env:TARGET_API_URL `
--github-repo "$env:GH_RPPO" `
--pipeline-filter "*Validate JSON files" `
--service-connection-id $env:ADO_SVC_CON_ID `
--max-concurrent-tests 1 `
--verbose
```

with `--target-api-url` = `https://api.my-enterprise.ghe.com`

the command fails with the following verbose log output:

`Repository self specifies endpoint 6e4565c8-b861-4480-b955-685ed7d52e54 which is of type githubenterprise but an endpoint of type GitHub is required`.

The service connection is a PAT based connection to a githubenterprise org. It has been tested and works when manually rewiring a pipeline in the ADO portal.

## Reproduction Steps
```
[2026-01-19 17:39:13] [DEBUG] HTTP POST: https://dev.azure.com/MyOrg/My%20Project/_apis/build/builds?api-version=6.0
[2026-01-19 17:39:13] [DEBUG] HTTP BODY: {"definition":{"id":242},"sourceBranch":"refs/heads/main","reason":"manual"}
[2026-01-19 17:39:14] [DEBUG] RESPONSE (BadRequest): {"$id":"1","customProperties":{"ValidationResults":[{"result":"error","message":"An error occurred while loading the YAML build pipeline. Repository self specifies endpoint 6e4565c8-b861-4480-b955-685ed7d52e54 which is of type githubenterprise but an endpoint of type GitHub is required"}]},"innerException":null,"message":"Could not queue the build because there were validation errors or warnings.","typeName":"Microsoft.TeamFoundation.Build.WebApi.BuildRequestValidationFailedException, Microsoft.TeamFoundation.Build2.WebApi","typeKey":"BuildRequestValidationFailedException","errorCode":0,"eventId":3000}
[2026-01-19 17:39:14] [DEBUG] HTTP GET: https://dev.azure.com/MyOrg/My%20Project/_apis/build/definitions/242?api-version=6.0
[2026-01-19 17:39:14] [DEBUG] RESPONSE (OK): {"options":[{"enabled":false,"definition":{"id":"5d58cc01-7c75-450c-be18-xxxx"},"inputs":{"branchFilters":"[\"+refs/heads/*\"]","additionalFields":"{}"}},{"enabled":false,"definition":{"id":"a9db38f9-9fdc-478c-b0f9-xxxx"},"inputs":{"workItemType":"Task","assignToRequestor":"true","additionalFields":"{}"}},{"enabled":false,"definition":{"id":"57578776-4c22-4526-aeb0-xxxx"},"inputs":{}}],"triggers":[{"branchFilters":[],"pathFilters":[],"settingsSourceType":2,"batchChanges":false,"maxConcurrentBuildsPerBranch":1,"triggerType":"continuousIntegration"},{"settingsSourceType":2,"branchFilters":[],"forks":{"enabled":false,"allowSecrets":false,"allowFullAccessToken":false},"pathFilters":[],"requireCommentsForNonTeamMembersOnly":false,"requireCommentsForNonTeamMemberAndNonContributors":false,"isCommentRequiredForPullRequest":false,"pipelineTriggerSettings":{"forkProtectionEnabled":false,"buildsEnabledForForks":false,"enforceJobAuthScopeForForks":false,"enforceNoAccessToSecretsFromForks":false,"isCommentRequiredForPullRequest":false,"requireCommentsForNonTeamMembersOnly":false,"requireCommentsForNonTeamMemberAndNonContributors":false},"triggerType":"pullRequest"}],"properties":{},"tags":[],"_links":{"self":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/build/Definitions/242?revision=29"},"web":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_build/definition?definitionId=242"},"editor":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_build/designer?id=242&_a=edit-build-definition"},"badge":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/build/status/242"}},"jobAuthorizationScope":"projectCollection","jobTimeoutInMinutes":60,"jobCancelTimeoutInMinutes":5,"process":{"yamlFilename":"pipelines/utility/validate-json.yml","type":2},"repository":{"properties":{"apiUrl":"https://api.my-enterprise.ghe.com/repos/My-Org-Sandbox/MyRepo","branchesUrl":"https://api.my-enterprise.ghe.com/repos/My-Org-Sandbox/MyRepo/branches","cloneUrl":"https://my-enterprise.ghe.com/My-Org-Sandbox/MyRepo.git","connectedServiceId":"6e4565c8-b861-4480-b955-xxxx","defaultBranch":"main","fullName":"My-Org-Sandbox/MyRepo","manageUrl":"https://my-enterprise.ghe.com/My-Org-Sandbox/MyRepo","orgName":"My-Org-Sandbox","refsUrl":"https://api.my-enterprise.ghe.com/repos/My-Org-Sandbox/MyRepo/git/refs","safeRepository":"My-Org-Sandbox/MyRepo","shortName":"MyRepo","reportBuildStatus":"true"},"id":"My-Org-Sandbox/MyRepo","type":"GitHub","name":"My-Org-Sandbox/MyRepo","url":"https://my-enterprise.ghe.com/My-Org-Sandbox/MyRepo.git","defaultBranch":"refs/heads/main","clean":"false","checkoutSubmodules":false},"quality":"definition","authoredBy":{"displayName":"My Name","url":"https://spsprodweu5.vssps.visualstudio.com/Aad16dbf3-708f-48b5-ba65-xxxx/_apis/Identities/3507fc18-006b-634b-81c1-xxxx","_links":{"avatar":{"href":"https://dev.azure.com/MyOrg/_apis/GraphProfile/MemberAvatars/aad.MzUwN2ZjMTgtMDA2Yi03MzRiLTgxYzEtYTAwMDBhNGIyZWI1"}},"id":"3507fc18-006b-634b-81c1-xxxx","uniqueName":"my.name@myorg.co.za","imageUrl":"https://dev.azure.com/MyOrg/_apis/GraphProfile/MemberAvatars/aad.MzUwN2ZjMTgtMDA2Yi03MzRiLTgxYzEtYTAwMDBhNGIyZWI1","descriptor":"aad.MzUwN2ZjMTgtMDA2Yi03MzRiLTgxYzEtYTAwMDBhNGIyZWI1"},"drafts":[],"queue":{"_links":{"self":{"href":"https://dev.azure.com/MyOrg/_apis/build/Queues/81"}},"id":81,"name":"Azure Pipelines","url":"https://dev.azure.com/MyOrg/_apis/build/Queues/81","pool":{"id":9,"name":"Azure Pipelines","isHosted":true}},"id":242,"name":"Validate JSON files","url":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/build/Definitions/242?revision=29","uri":"vstfs:///Build/Definition/242","path":"\\My Repo\\Utility","type":"build","queueStatus":"enabled","revision":29,"createdDate":"2026-01-19T16:39:13.577Z","project":{"id":"8593a143-361a-4ffa-bc1f-xxxx","name":"My Project","description":"Pipelines & code for my project","url":"https://dev.azure.com/MyOrg/_apis/projects/8593a143-361a-4ffa-bc1f-xxxx","state":"wellFormed","revision":147,"visibility":"private","lastUpdateTime":"2025-05-29T09:15:32.637Z"}}
[2026-01-19 17:39:14] [DEBUG] HTTP GET: https://dev.azure.com/MyOrg/My%20Project/_apis/git/repositories/My%20Repo?api-version=4.1
[2026-01-19 17:39:14] [DEBUG] RESPONSE (OK): {"id":"920067c4-03c6-4495-b2fc-xxxx","name":"My Repo","url":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/git/repositories/920067c4-03c6-4495-b2fc-xxxx","project":{"id":"8593a143-361a-4ffa-bc1f-xxxx","name":"My Project","description":"Pipelines & code for my project","url":"https://dev.azure.com/MyOrg/_apis/projects/8593a143-361a-4ffa-bc1f-xxxx","state":"wellFormed","revision":147,"visibility":"private","lastUpdateTime":"2025-05-29T09:15:32.637Z"},"defaultBranch":"refs/heads/main","size":13227287,"remoteUrl":"https://MyOrg@dev.azure.com/MyOrg/My%20Project/_git/My%20Repo","sshUrl":"git@ssh.dev.azure.com:v3/myorgDev/My%20Project/My%20Repo","webUrl":"https://dev.azure.com/MyOrg/My%20Project/_git/My%20Repo","_links":{"self":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/git/repositories/920067c4-03c6-4495-b2fc-xxxx"},"project":{"href":"vstfs:///Classification/TeamProject/8593a143-361a-4ffa-bc1f-xxxx"},"web":{"href":"https://dev.azure.com/MyOrg/My%20Project/_git/My%20Repo"},"ssh":{"href":"git@ssh.dev.azure.com:v3/myorgDev/My%20Project/My%20Repo"},"commits":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/git/repositories/920067c4-03c6-4495-b2fc-xxxx/commits"},"refs":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/git/repositories/920067c4-03c6-4495-b2fc-xxxx/refs"},"pullRequests":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/git/repositories/920067c4-03c6-4495-b2fc-xxxx/pullRequests"},"items":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/git/repositories/920067c4-03c6-4495-b2fc-xxxx/items"},"pushes":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/git/repositories/920067c4-03c6-4495-b2fc-xxxx/pushes"}},"isDisabled":false,"isInMaintenance":false}
[2026-01-19 17:39:14] [DEBUG] HTTP PUT: https://dev.azure.com/MyOrg/My%20Project/_apis/build/definitions/242?api-version=6.0
[2026-01-19 17:39:14] [DEBUG] HTTP BODY: {"options":[{"enabled":false,"definition":{"id":"5d58cc01-7c75-450c-be18-xxxx"},"inputs":{"branchFilters":"[\"+refs/heads/*\"]","additionalFields":"{}"}},{"enabled":false,"definition":{"id":"a9db38f9-9fdc-478c-b0f9-xxxx"},"inputs":{"workItemType":"Task","assignToRequestor":"true","additionalFields":"{}"}},{"enabled":false,"definition":{"id":"57578776-4c22-4526-aeb0-xxxx"},"inputs":{}}],"triggers":[{"branchFilters":[],"pathFilters":[],"settingsSourceType":2,"batchChanges":false,"maxConcurrentBuildsPerBranch":1,"triggerType":"continuousIntegration"}],"properties":{},"tags":[],"_links":{"self":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/build/Definitions/242?revision=29"},"web":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_build/definition?definitionId=242"},"editor":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_build/designer?id=242&_a=edit-build-definition"},"badge":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/build/status/242"}},"jobAuthorizationScope":"projectCollection","jobTimeoutInMinutes":60,"jobCancelTimeoutInMinutes":5,"process":{"yamlFilename":"pipelines/utility/validate-json.yml","type":2},"repository":{"id":"920067c4-03c6-4495-b2fc-xxxx","type":"TfsGit","name":"My Repo","url":"https://dev.azure.com/MyOrg/My%20Project/_git/My%20Repo","defaultBranch":"main","clean":"false","checkoutSubmodules":"false","properties":{"cleanOptions":"0","labelSources":"0","labelSourcesFormat":"$(build.buildNumber)","reportBuildStatus":"true","gitLfsSupport":"false","skipSyncSource":"false","checkoutNestedSubmodules":"false","fetchDepth":"0"}},"quality":"definition","authoredBy":{"displayName":"My Name","url":"https://spsprodweu5.vssps.visualstudio.com/Aad16dbf3-708f-48b5-ba65-xxxx/_apis/Identities/3507fc18-006b-634b-81c1-xxxx","_links":{"avatar":{"href":"https://dev.azure.com/MyOrg/_apis/GraphProfile/MemberAvatars/aad.MzUwN2ZjMTgtMDA2Yi03MzRiLTgxYzEtYTAwMDBhNGIyZWI1"}},"id":"3507fc18-006b-634b-81c1-xxxx","uniqueName":"my.name@myorg.co.za","imageUrl":"https://dev.azure.com/MyOrg/_apis/GraphProfile/MemberAvatars/aad.MzUwN2ZjMTgtMDA2Yi03MzRiLTgxYzEtYTAwMDBhNGIyZWI1","descriptor":"aad.MzUwN2ZjMTgtMDA2Yi03MzRiLTgxYzEtYTAwMDBhNGIyZWI1"},"drafts":[],"queue":{"_links":{"self":{"href":"https://dev.azure.com/MyOrg/_apis/build/Queues/81"}},"id":81,"name":"Azure Pipelines","url":"https://dev.azure.com/MyOrg/_apis/build/Queues/81","pool":{"id":9,"name":"Azure Pipelines","isHosted":true}},"id":242,"name":"Validate JSON files","url":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/build/Definitions/242?revision=29","uri":"vstfs:///Build/Definition/242","path":"\\My Repo\\Utility","type":"build","queueStatus":"enabled","revision":29,"createdDate":"2026-01-19T16:39:13.577Z","project":{"id":"8593a143-361a-4ffa-bc1f-xxxx","name":"My Project","description":"Pipelines & code for my project","url":"https://dev.azure.com/MyOrg/_apis/projects/8593a143-361a-4ffa-bc1f-xxxx","state":"wellFormed","revision":147,"visibility":"private","lastUpdateTime":"2025-05-29T09:15:32.637Z"},"settingsSourceType":1}
[2026-01-19 17:39:15] [DEBUG] RESPONSE (OK): {"options":[{"enabled":false,"definition":{"id":"5d58cc01-7c75-450c-be18-xxxx"},"inputs":{"branchFilters":"[\"+refs/heads/*\"]","additionalFields":"{}"}},{"enabled":false,"definition":{"id":"a9db38f9-9fdc-478c-b0f9-xxxx"},"inputs":{"workItemType":"Task","assignToRequestor":"true","additionalFields":"{}"}},{"enabled":false,"definition":{"id":"57578776-4c22-4526-aeb0-xxxx"},"inputs":{}}],"triggers":[{"branchFilters":[],"pathFilters":[],"settingsSourceType":2,"batchChanges":false,"maxConcurrentBuildsPerBranch":1,"triggerType":"continuousIntegration"}],"properties":{"PipelinesCreatedOnBranch":{"$type":"System.String","$value":"1084-add-validation-pipeline-for-json-fi"},"LastRepositoryUpdate":{"$type":"System.DateTime","$value":"2026-01-19T15:26:12.027Z"}},"tags":[],"_links":{"self":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/build/Definitions/242?revision=30"},"web":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_build/definition?definitionId=242"},"editor":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_build/designer?id=242&_a=edit-build-definition"},"badge":{"href":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/build/status/242"}},"jobAuthorizationScope":"projectCollection","jobTimeoutInMinutes":60,"jobCancelTimeoutInMinutes":5,"process":{"yamlFilename":"pipelines/utility/validate-json.yml","type":2},"repository":{"properties":{"cleanOptions":"0","labelSources":"0","labelSourcesFormat":"$(build.buildNumber)","reportBuildStatus":"true","gitLfsSupport":"false","skipSyncSource":"false","checkoutNestedSubmodules":"false","fetchDepth":"0"},"id":"920067c4-03c6-4495-b2fc-xxxx","type":"TfsGit","name":"My Repo","url":"https://dev.azure.com/MyOrg/My%20Project/_git/My%20Repo","defaultBranch":"refs/heads/main","clean":"false","checkoutSubmodules":false},"quality":"definition","authoredBy":{"displayName":"My Name","url":"https://spsprodweu5.vssps.visualstudio.com/Aad16dbf3-708f-48b5-ba65-xxxx/_apis/Identities/3507fc18-006b-634b-81c1-xxxx","_links":{"avatar":{"href":"https://dev.azure.com/MyOrg/_apis/GraphProfile/MemberAvatars/aad.MzUwN2ZjMTgtMDA2Yi03MzRiLTgxYzEtYTAwMDBhNGIyZWI1"}},"id":"3507fc18-006b-634b-81c1-xxxx","uniqueName":"my.name@myorg.co.za","imageUrl":"https://dev.azure.com/MyOrg/_apis/GraphProfile/MemberAvatars/aad.MzUwN2ZjMTgtMDA2Yi03MzRiLTgxYzEtYTAwMDBhNGIyZWI1","descriptor":"aad.MzUwN2ZjMTgtMDA2Yi03MzRiLTgxYzEtYTAwMDBhNGIyZWI1"},"drafts":[],"queue":{"_links":{"self":{"href":"https://dev.azure.com/MyOrg/_apis/build/Queues/81"}},"id":81,"name":"Azure Pipelines","url":"https://dev.azure.com/MyOrg/_apis/build/Queues/81","pool":{"id":9,"name":"Azure Pipelines","isHosted":true}},"id":242,"name":"Validate JSON files","url":"https://dev.azure.com/MyOrg/8593a143-361a-4ffa-bc1f-xxxx/_apis/build/Definitions/242?revision=30","uri":"vstfs:///Build/Definition/242","path":"\\My Repo\\Utility","type":"build","queueStatus":"enabled","revision":30,"createdDate":"2026-01-19T16:39:15.54Z","project":{"id":"8593a143-361a-4ffa-bc1f-xxxx","name":"My Project","description":"Pipelines & code for my project","url":"https://dev.azure.com/MyOrg/_apis/projects/8593a143-361a-4ffa-bc1f-xxxx","state":"wellFormed","revision":147,"visibility":"private","lastUpdateTime":"2025-05-29T09:15:32.637Z"}}
[2026-01-19 17:39:15] [ERROR] Batch testing failed: Failed to test pipeline '\My Repo\Utility\Validate JSON files': Response status code does not indicate success: 400 (Bad Request).
```
- This log has been obfuscated for obvious reasons
- Both 'My Project' as well as 'My Repo' have been chosen with spaces in their name to match my reality

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.