ci: make Azure Pipelines PR triggers explicit - #1250
Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Avishek (avishekpant)
approved these changes
Aug 31, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Member
Author
|
/azp run Python E2E |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Member
Author
|
ADO configuration follow-up:
|
Member
Author
|
/azp run horton-e2e-python |
Member
Author
|
/AzurePipelines run horton-e2e-python |
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.
Summary
mainin the Build, Python E2E, and DPS E2E Azure PipelinesmainWhy
Horton E2E declared its
triggerandprfilters in YAML, while Build, Python E2E, and DPS E2E relied on implied or pipeline UI configuration. This produced inconsistent checked-in configuration and made trigger behavior harder to diagnose. In particular, same-repository Dependabot PRs ran Horton and DPS but did not run Python E2E.Keeping the branch triggers explicit and identical makes the intended behavior versioned and reviewable. Azure DevOps pipeline settings can still impose stricter organization, project, or pipeline-level fork policies.
Build pipeline incident
The separate absence of the
Azure.azure-iot-sdk-pythonstatus was not caused by this YAML change. Azure DevOps definition 330 had been changed fromqueueStatus: enabledin revision 35 toqueueStatus: disabledin revision 36 on August 27. The YAML path and trigger filters were unchanged.The definition has been re-enabled in Azure DevOps as revision 37. A fresh synchronization event for this PR queued Build 162892 and posted the required GitHub status successfully.
External contributor security configuration
Fork approval policy cannot be expressed in pipeline YAML. In Azure DevOps, configure Project Settings > Pipelines > Settings > Triggers to securely build fork PRs, and configure each pipeline to require a team member's comment for fork PRs while allowing same-repository PRs to run automatically.
This allows Dependabot PRs to run automatically because Dependabot creates branches in this repository, while external fork PRs wait for a maintainer to trigger them with
/azp run.Secrets and regular-build permissions should remain unavailable to fork builds. Resource-dependent E2E pipelines may therefore require a trusted internal branch after review if their service connections are unavailable to the secure fork build.
Validation
git diff --checkAzure.azure-iot-sdk-pythonBuild 162892