Skip to main content

export-api

Generate api.md artifacts for changed Rust crates after code generation or source edits.

Source facts

Repository
Azure/azure-sdk-for-rust
Last source activity
September 24, 2026 at 21:39
Detected SKILL.md language
English
Stars
886
Forks
370

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
export-api
description
Generate api.md artifacts for changed Rust crates after code generation or source edits.
# Export API artifacts Run this after regenerating sources or changing Rust code that can affect a crate's public API. ## Default workflow 1. Collect changed non-deleted files from Git. By default, use both staged and unstaged local changes: ```bash { git diff --staged --name-only --diff-filter=d; git diff --name-only --diff-filter=d; git ls-files --others --exclude-standard -- 'sdk'; } | sort -u ``` 2. If the user wants branch-based detection instead, diff against the merge base with `main`: ```bash base="$(git merge-base main HEAD)" git diff --name-only --diff-filter=d "$base"...HEAD | sort -u ``` This branch-based mode only considers tracked branch changes; use the default local-change mode when untracked files should also trigger API regeneration. 3. Assume service crates live under `sdk/<service-directory>/<crate-name>`. For each changed file under `sdk/`, derive the candidate crate directory from the first three path segments and keep it only when `<crate-directory>/Cargo.toml` exists. 4. For each affected crate, run the explicit generator command from the repository root: ```bash cargo run --manifest-path eng/tools/generate_api/Cargo.toml -- \ --manifest-path <crate>/Cargo.toml ``` ## Optional outputs - Pass `--review` to also generate `api.metadata.yml`, `api.md.map`, and `api.documentation.patch`. ## No changed crates If no changed files map to a crate directory under `sdk/<service-directory>/<crate-name>`, stop and report that no crate API artifacts need regeneration. ## Validation After generation, check the resulting `api.md` files in `git diff` and report which crates were updated.
View on GitHub