From 5d19a3f8b0e03f8f578308869e44bfee5674bef4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 17 Mar 2026 22:36:21 +0000 Subject: [PATCH 1/2] Initial plan From 472b43ed21fbec8d6d6fe7058e8266384e88a819 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 17 Mar 2026 22:42:48 +0000 Subject: [PATCH 2/2] Add --md flag to azpysdk apistub to generate api.md Co-authored-by: JennyPng <63012604+JennyPng@users.noreply.github.com> --- eng/tools/azure-sdk-tools/azpysdk/apistub.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/eng/tools/azure-sdk-tools/azpysdk/apistub.py b/eng/tools/azure-sdk-tools/azpysdk/apistub.py index 712b033d700c..6f597596d697 100644 --- a/eng/tools/azure-sdk-tools/azpysdk/apistub.py +++ b/eng/tools/azure-sdk-tools/azpysdk/apistub.py @@ -1,5 +1,6 @@ import argparse import os +import subprocess import sys from typing import Optional, List @@ -63,6 +64,13 @@ def register( default=None, help="Destination directory for generated API stub token files.", ) + p.add_argument( + "--md", + dest="generate_md", + default=False, + action="store_true", + help="Additionally generate api.md from the JSON token file using Export-APIViewMarkdown.ps1.", + ) p.set_defaults(func=self.run) def run(self, args: argparse.Namespace) -> int: @@ -146,6 +154,18 @@ def run(self, args: argparse.Namespace) -> int: try: self.run_venv_command(executable, cmds, cwd=staging_directory, check=True, immediately_dump=True) + if getattr(args, "generate_md", False): + token_json_path = os.path.join(out_token_path, f"{package_name}_python.json") + md_script = os.path.join(REPO_ROOT, "eng", "common", "scripts", "Export-APIViewMarkdown.ps1") + logger.info(f"Generating api.md for {package_name}") + try: + subprocess.run( + ["pwsh", md_script, "-TokenJsonPath", token_json_path, "-OutputPath", out_token_path], + check=True, + ) + except (CalledProcessError, FileNotFoundError) as e: + logger.error(f"Failed to generate api.md: {e}") + results.append(1) except CalledProcessError as e: logger.error(f"{package_name} exited with error {e.returncode}") results.append(e.returncode)