Skip to content

[MrBot] Replace update_deps with the Azure-MessagingStore pipeline version - #474

Open
Parth Aggarwal (parth21999) wants to merge 1 commit into
masterfrom
paaggarwal-microsoft-copy-ebs-propagation-scripts
Open

Parth Aggarwal (parth21999) wants to merge 1 commit into
masterfrom
paaggarwal-microsoft-copy-ebs-propagation-scripts

Conversation

@parth21999

Copy link
Copy Markdown
Member

Summary

This replaces update_deps/ with the pipeline version from Azure-MessagingStore (EBS): scripts/update_deps at commit 03122f16a9117680d1a0f9512457dcc6e9b690e3, which is unchanged on Store master since. It is a straight copy. All 12 scripts and ignores.json have the same git blob IDs as in Azure-MessagingStore. This is an alternative to #473, which merges the two versions instead of replacing one.

  • One edit to the copied files: dependency_updates_propagation.md linked to the pipeline definition with ../../build/propagate_deps.yml. That path doesn't resolve in this repo, so the link now points to the file in Azure-MessagingStore.
  • Removed: what only the interactive version used:
    • the helper_scripts/ files autofix, check_script_update, install_az_cli, pr_watch_utils, propagation_state, success_animation, watch_azure_pr and watch_github_pr;
    • known_graph.json;
    • the PAT screenshots under images/, which only the old document used.
  • Kept: update_deps.ps1, a standalone submodule update script that propagation doesn't use.
  • .github/copilot-instructions.md: the Requires line now names SYSTEM_ACCESSTOKEN and GH_TOKEN.

What changes for users

Interactive use goes away: no WAM/PAT sign-in (-azure_token), -Resume, -AutoFix or -ForceBuildGraph, no known_graph.json reuse, and no live PR watchers or Ctrl+C menu. The script runs the way the Azure-MessagingStore aa_propagate_submodules pipeline runs it:

.\propagate_updates.ps1 -azure_work_item <id> -root_list <url>,<url> [-poll_interval <seconds>] [-NoCloseFailedPr]
  • SYSTEM_ACCESSTOKEN is used for Azure DevOps REST, and GH_TOKEN for gh and GitHub pushes.
  • Git authentication to Azure DevOps comes from the caller's git configuration. The Azure-MessagingStore YAML sets an extraheader in a job-scoped GIT_CONFIG_GLOBAL.
  • The preflight checks https://dev.azure.com/msazure, project One.

To run this copy, Azure-MessagingStore's build/propagate_deps.yml only needs a new script path: deps\c-build-tools\update_deps\propagate_updates.ps1 instead of scripts\update_deps\propagate_updates.ps1. The arguments and environment stay the same.

Validation

  • Copy check: the blob IDs of the 12 scripts and ignores.json match Azure-MessagingStore at 03122f16 and at its current master (50e3cf77). The document differs only in the link line.

  • Parse check: all 12 scripts parse in Windows PowerShell 5.1 and PowerShell 7. Nothing in update_deps refers to a removed file.

  • Repository validator: it reports only its existing findings, none in files touched here.

  • End-to-end: a local harness (not part of this PR) ran the copied scripts in place the way the pipeline does: Windows PowerShell 5.1, with fake Azure DevOps and GitHub services backed by local bare git repos and no network access. All 8 scenarios passed:

    • a full propagation, including injected service failures;
    • failing GitHub checks;
    • a rejected Azure DevOps PR with -NoCloseFailedPr;
    • missing GitHub push access;
    • each missing input: work item, SYSTEM_ACCESSTOKEN and GH_TOKEN;
    • nothing to propagate.

    The same commit in its Azure-MessagingStore layout gave identical results.

Copy scripts/update_deps from Azure-MessagingStore commit
03122f16a9117680d1a0f9512457dcc6e9b690e3 (unchanged on its master since)
into update_deps, replacing the interactive c-build-tools version. Every
script and ignores.json is byte-identical to the Azure-MessagingStore
blob. The only edit to the copied files is the link to the pipeline
definition in dependency_updates_propagation.md, which now points to
build/propagate_deps.yml in Azure-MessagingStore because the relative
path does not resolve here.

The Azure-MessagingStore version runs unattended in an Azure DevOps
pipeline. It authenticates with SYSTEM_ACCESSTOKEN and GH_TOKEN, checks
access before opening any PR, discovers the dependency graph live, and
opens each PR as soon as everything it depends on has merged.

Remove what only the interactive version used: the WAM/PAT sign-in,
-Resume, -AutoFix, PR watcher, script update check and animation
helpers, known_graph.json, and the PAT screenshots referenced by the old
document. update_deps.ps1 is unrelated to propagation and stays. The
copilot instructions now name the environment variables the script
needs.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 2cc24a4e-c845-4bfe-99ea-c31ce12fb4bd
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@parth21999

Copy link
Copy Markdown
Member Author

/azp run Azure-C-Build-Tools-Gate

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant