ci(prcheck): split pipeline script into client + thin runner#17064
Merged
christopherco merged 1 commit intoMay 8, 2026
Merged
Conversation
e98a100 to
ccb21d3
Compare
5db19fc to
3c3b820
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Refactors the Control Tower PR-check scripting used by the sources-upload Azure DevOps pipeline by extracting shared HTTP/auth/polling logic into a reusable client module and keeping the runner as a thin CLI wrapper.
Changes:
- Added
.github/workflows/scripts/control-tower/client.pywith shared Control Tower HTTP helpers (token refresh, scenario POST, job polling, error formatting). - Added
.github/workflows/scripts/control-tower/run_prcheck.pyas the prcheck runner usingclient.py. - Updated the
sources-uploadstages template to install deps and invoke the new script path (and changed the base URL variable reference).
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/scripts/control-tower/run_prcheck.py | New thin runner CLI that builds payloads, calls the prcheck scenario, and polls to terminal state. |
| .github/workflows/scripts/control-tower/client.py | New shared module providing HTTP session setup, token refresh behavior, scenario POST, polling, and error formatting. |
| .github/workflows/scripts/control-tower/requirements.txt | Pins Python dependencies for the Control Tower scripts. |
| .github/workflows/ado/templates/sources-upload-stages.yml | Points dependency install + runner invocation at the new script locations; updates base URL variable usage. |
| .github/workflows/ado/sources-upload.yml | Updates the documented required variable name for the Control Tower base URL. |
PawelWMS
approved these changes
May 7, 2026
Refactor the prcheck pipeline script in preparation for a second runner that submits package builds. No behavior change. * Move .github/workflows/scripts/control-tower-prcheck/ to .github/workflows/scripts/control-tower/. * Extract HTTP/auth/polling helpers from run_control_tower_prcheck.py into a shared client.py module (post_scenario, get_job_status, poll_until_terminal, etc.). * Rename the runner to run_prcheck.py and reduce it to a thin CLI on top of client.py. * Update the sources-upload stages template to point at the new script paths. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
47a1d83 to
0a6d4e7
Compare
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.
Refactor the prcheck pipeline script in preparation for a second runner
that submits package builds. No behavior change.
.github/workflows/scripts/control-tower/.
into a shared client.py module (post_scenario, get_job_status,
poll_until_terminal, etc.).
top of client.py.
script paths.
Moved to a direct URL (no AFD), encoded as
ApiBaseDirectUrl