/SKILL.md
# Skills ## Creating a release ### 1. Ensure changes are on main All changes for the release (dependency updates, bug fixes, etc.) should already be merged to `main`. ### 2. Create a release branch ```sh git checkout main git pull git checkout -b release-X.Y.0 ``` ### 3. Bump the crate version Edit `azure_devops_rust_api/Cargo.toml`: - Update `version = "X.Y.0"` ### 4. Update the README version Edit `azure_devops_rust_api/README.md`: - Update the example `Cargo.toml` snippet: `azure_dev
npx skillsauth add microsoft/azure-devops-rust-api azure-devops-rust-apiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
All changes for the release (dependency updates, bug fixes, etc.) should already be merged to main.
git checkout main
git pull
git checkout -b release-X.Y.0
Edit azure_devops_rust_api/Cargo.toml:
version = "X.Y.0"Edit azure_devops_rust_api/README.md:
Cargo.toml snippet: azure_devops_rust_api = { version = "X.Y.0", ... }Edit CHANGELOG.md:
## [X.Y.0] between ## [Unreleased] and the existing ### Changes section (the changes stay, they just move under the new version heading)[Unreleased] to compare from the new version: compare/X.Y.0...HEAD[X.Y.0]: https://github.com/microsoft/azure-devops-rust-api/compare/PREV.0...X.Y.0git add CHANGELOG.md azure_devops_rust_api/Cargo.toml azure_devops_rust_api/README.md
git commit -m "Release X.Y.0"
git push -u origin release-X.Y.0
Create a PR to main. After merging, the crate can be published to crates.io.
The azure_devops_rust_api crate depends on azure_core (runtime) and azure_identity (dev/examples). These are updated periodically to track the latest Azure SDK for Rust releases.
Check crates.io for the latest versions. They are released in lockstep and should use the same version.
Watch out for yanked versions (e.g. 0.30.0 was yanked, 0.30.1 replaced it).
Edit azure_devops_rust_api/Cargo.toml:
azure_core = { version = "X.Y", ... } in [dependencies]azure_identity = "X.Y" in [dev-dependencies]cargo check --all-features
cargo check --all-features --examples
If there are no compilation errors, you're done with code changes.
If there are errors, fixes may be needed in two places:
Code generator (for generated code errors — do NOT edit generated files directly):
autorust/codegen/src/codegen_operations/create_client_and_builder.rs — Pipeline, Transport, RetryOptions usageautorust/codegen/src/codegen_operations/request_builder_send.rs — Pipeline::send() calls, api-version parameterautorust/codegen/src/codegen_operations/request_builder_into_future.rs — into_body()/into_model() callsautorust/codegen/src/codegen_operations/response_code.rs — Response type definitionsAfter fixing codegen, regenerate with ./build.sh, then re-check.
Hand-written source (fix directly):
azure_devops_rust_api/src/auth.rs — TokenCredential, error handlingazure_devops_rust_api/src/date_time.rs — error handlingazure_devops_rust_api/src/telemetry.rs — Policy trait, Response typesAdd an entry under ## [Unreleased]:
### Changes
- Update `azure_core` and `azure_identity` to X.Y.
If code changes were needed, list them (see the 0.33.0 entry for a detailed example).
git checkout -b azure_core-X.Y
git add CHANGELOG.md azure_devops_rust_api/Cargo.toml [any other changed files]
git commit -m "Update azure_core, azure_identity to X.Y"
git push -u origin azure_core-X.Y
The README (azure_devops_rust_api/README.md) version string is only updated at release time, not during dependency updates.
These are the areas most likely to break across versions:
azure_core::http::Pipeline — HTTP pipeline for sending requestsazure_core::http::Request / RawResponse — request/response typesazure_core::http::RetryOptions / Transport — client configurationazure_core::http::Context — request contextazure_core::http::policies::Policy — pipeline policies (telemetry.rs)azure_core::credentials::TokenCredential — authentication (auth.rs)azure_core::error::{Error, ErrorKind, Result} — error typesdevelopment
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.