Azure DevOps Pipeline Not Triggering for GitHub Pull Request Events Despite Successful Webhook Delivery

Manoj Rajkumar Chopkar 0 Reputation points
2025-06-27T05:59:23.6166667+00:00

An issue is being encountered where pull request (PR) events from a GitHub Enterprise Cloud repository (with data residency in Europe) are not triggering the Azure DevOps pipeline, even though webhook events are successfully delivered with a 200 OK response.

Pipeline Type: YAML-based

  1. Service Connection Used: GitHub Enterprise Server (configured with classic PAT)
  2. PAT Scopes: repo, admin:repo_hook, read:org, workflow
  3. Pipeline Binding: Created using the “New Pipeline” wizard with GitHub Enterprise Server selection and repository integration
  4. Pipeline Permissions: No restrictions; service connection authorized and public key scopes verified
  5. Trigger Settings:
    • YAML includes:
            trigger:
           branches:
             include:
               - partcopy
    
         pr:
           branches:
             include:
               - partcopy
    
    • Pull request validation is also enabled in the pipeline UI.
Azure DevOps
{count} votes

2 answers

Sort by: Most helpful
  1. Durga Reshma Malthi 6,130 Reputation points Microsoft External Staff Moderator
    2025-06-27T08:38:49.13+00:00

    Hi Manoj Rajkumar Chopkar

    You're using GitHub Enterprise Cloud with data residency in Europe, but you've configured the service connection as GitHub Enterprise Server.

    Azure DevOps treats GitHub Enterprise Cloud and Server as separate endpoint types. If you selected the "GitHub Enterprise Server" option and provided the GitHub Cloud URL, Azure DevOps might not associate the webhook payload correctly. Try re-creating the service connection using the GitHub or GitHub Enterprise Cloud option (not Server), even if the repo is in a separate region.

    Go to Azure DevOps -> Project Settings -> Service Connections -> + New service connection -> Select GitHub (not GitHub Enterprise Server)

    • Authenticate using a GitHub OAuth or PAT with repo, workflow, admin:repo_hook scopes
    • Select your GitHub Enterprise Cloud repository (EU-hosted)
    • Authorize the connection properly

    Now Go to your pipeline in Azure DevOps -> Edit the pipeline -> Make sure the pipeline is bound to the repository via the new GitHub service connection and Confirm YAML is in the target repo.

    Hope this helps!

    Please Let me know if you have any queries.

    0 comments No comments

  2. Durga Reshma Malthi 6,130 Reputation points Microsoft External Staff Moderator
    2025-06-27T10:50:55.8033333+00:00

    Hi Manoj Rajkumar Chopkar

    Based on your info provide,

    1. Your GitHub instance is hosted at a URL like https://<company>.ghe.com.
    2. You're using GitHub Enterprise Cloud with custom domain URL (ghe.com).

    The GitHub connection type does not support GitHub Cloud tenants with custom domains, even though the backend is GitHub Enterprise Cloud.

    So, despite being a GitHub Enterprise Cloud instance, your ghe.com-based tenant requires you to use the GitHub Enterprise Server connection type because of the custom domain.

    When creating the service connection:

    • Select GitHub Enterprise Server
    • Enter your custom domain: https://<company>.ghe.com
    • Use a classic PAT with the correct scopes: repo, admin:repo_hook, workflow, read:org, user
    • Ensure:
      • The PAT is SSO-authorized
      • Your organization does not restrict PAT usage
      • The token has not expired or been revoked

    In Azure DevOps:

    • Go to Project Settings -> Service Connections -> GitHub Enterprise Server connection -> Click Manage roles or Security -> Ensure it is authorized for all pipelines or specifically the target pipeline and approve the key if prompted

    In your GitHub repository (hosted at *.ghe.com):

    • Navigate to Settings > Webhooks and Confirm:
      • Azure DevOps webhook is registered
      • Events like pull_request, push are enabled

    Hope this helps!

    Please Let me know if you have any queries.

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.