All skills
microsoft avatar

/azure-upgrade

@36a90f7 official

Assess and upgrade Azure workloads between plans, tiers, or SKUs, or modernize Azure SDK dependencies in source code. WHEN: upgrade Consumption to Flex Consumption, upgrade Azure Functions plan, change hosting plan, function app SKU, migrate App Service to Container Apps, modernize legacy Azure Java SDKs (com.microsoft.azure to com.azure), migrate Azure Cache for Redis (ACR/ACRE) to Azure Managed Redis (AMR).

Use this Skill: https://skilld.dev/gh/microsoft/github-copilot-for-azure/azure-upgrade

This session only. Nothing lands on disk.

referenceslanguagesjavabom-migrationbom-migration.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

BOM Migration Guide

How to add or upgrade azure-sdk-bom and clean up redundant versions across all supported build configurations.

Prerequisite — Python availability check

The Maven and plain-Gradle flows are automated by scripts/upgrade_bom.py (Python 3.10+). The script resolves the latest BOM internally; do not pass or pin a literal BOM version. Before picking a guide, verify Python is available:

The following check works in both bash and PowerShell 7+ (the || operator is supported in both):

python3 --version || python --version

For Windows PowerShell 5.1, use:

python3 --version; if ($LASTEXITCODE -ne 0) { python --version }
  • Python available → use the script as documented in bom-maven.md / bom-gradle.md. If upgrade_bom.py fails for any reason, do not stop the migration; manually resolve the BOM version and follow the same guide's Manual Fallback section.
  • Python NOT available → follow the Manual Fallback section in the same guide. Do not attempt to install Python; perform the edits by hand.

The TOML and programmatic-catalog guides (bom-gradle-toml.md, bom-gradle-settings.md) are manual-only and unaffected by Python availability.

Determine the latest BOM version

Resolve the target azure-sdk-bom version from the Azure SDK for Java source of truth before editing build files. This is mandatory: do not hardcode, guess, pin, or reuse an illustrative version from another example. Existing versions are accepted only when they exactly match the resolved latest stable version. Always perform this resolution at the time the migration plan is generated. Never derive TARGET_AZURE_SDK_BOM_VERSION from the application being migrated, from a previously generated plan, from package-specific examples, or from model memory. If a resolved version differs from an existing azure-sdk-bom in the project, the existing BOM is stale and must be upgraded.

The following invocation works identically in bash and PowerShell (no shell-specific syntax):

# Path is relative to the skill directory (plugin/skills/azure-upgrade/)
python3 ./references/languages/java/scripts/upgrade_bom.py --get-latest-version
# or: python ./references/languages/java/scripts/upgrade_bom.py --get-latest-version

If Python is not available or the --get-latest-version command fails, fetch https://raw.githubusercontent.com/Azure/azure-sdk-for-java/main/sdk/boms/azure-sdk-bom/pom.xml directly and use the <version> value declared in that BOM pom.xml.

Do not continue until you have resolved that latest stable version explicitly. Add only that value to the plan's Guidelines section as TARGET_AZURE_SDK_BOM_VERSION = <resolved-version>.

Decision Tree

Is the project Maven?
├─ YES → Maven projects (bom-maven.md)
└─ NO (Gradle)
     ├─ Does gradle/libs.versions.toml exist with Azure entries?
     │    └─ YES → TOML catalog steps (bom-gradle-toml.md)
     ├─ Does settings.gradle define a programmatic versionCatalogs block with Azure entries?
     │    └─ YES → Programmatic catalog steps (bom-gradle-settings.md)
     └─ Neither (plain build.gradle dependencies)
          └─ Plain Gradle projects (bom-gradle.md)

💡 Tip: To check which artifacts are managed by the BOM, fetch https://repo1.maven.org/maven2/com/azure/azure-sdk-bom/{bom_version}/azure-sdk-bom-{bom_version}.pom and look for <dependency> entries.

Build-System Guides

Build system Guide
Maven bom-maven.md
Gradle (no version catalog) bom-gradle.md
Gradle + TOML version catalog bom-gradle-toml.md
Gradle + programmatic catalog bom-gradle-settings.md

Validation

See the Validation Checklist — covers all build systems including TOML and programmatic settings.gradle catalogs.

Source: SKILL.md on GitHub

2 warnings4mo5 checks · Risk SAFE
  • Gen Agent Trust Hub4mo

    This skill facilitates Azure workload upgrades and Java SDK modernization. It includes security considerations such as command execution and fetching data from remote sources, which are within the skill's intended purpose of automating cloud and code migrations.

  • Socket4mo

    No alerts

  • Snyk4mo

    Risk: MEDIUM · 2 issues

  • Runlayer6mo

    3/6 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 36a90f7. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 5 months ago
compatibility
python3.10+
metadata
{
  "author": "Microsoft",
  "version": "0.0.0-placeholder"
}
  • Infrastructure
  • azure
  • azure-functions
  • azure-app-service
  • azure-redis
  • java-sdk
  • migrations
  • sku-upgrades
  • consumption-plan
  • flex-consumption

README badge

README badge for microsoft/github-copilot-for-azure/azure-upgrade

Assesses and automates Azure workload upgrades across plans, tiers, and SKUs—such as Functions Consumption to Flex Consumption, App Service to Container Apps, or Redis migrations to Azure Managed Redis. Also modernizes legacy Azure Java SDK dependencies (com.microsoft.azure to com.azure) in source code. Includes readiness checks, configuration migration, and validation steps.

Generated from the current SKILL.md.

Does this skill handle cross-cloud migration?
No. This skill is for Azure-to-Azure upgrades only (plan changes, SKU swaps, service migrations within Azure). For cross-cloud migration, use the `azure-cloud-migrate` skill.
What Azure upgrades does this skill cover?
It handles Azure Functions plan upgrades (Consumption to Flex Consumption), hosting tier changes, App Service to Container Apps migration, Redis cache upgrades (ACR/ACRE to Azure Managed Redis), and legacy Azure Java SDK modernization (com.microsoft.azure to com.azure).
Will this skill delete my existing app without asking?
No. The skill requires explicit user confirmation before stopping or deleting the original app. All destructive actions trigger a confirmation prompt.
Does this skill support Java SDK modernization?
Yes. It handles source-code modernization from legacy Azure Java SDKs (com.microsoft.azure.*) to modern ones (com.azure.*).
What happens after the upgrade is complete?
The skill asks whether you want to verify performance, clean up the old app, or update your infrastructure-as-code. You can then hand off to `azure-validate` for deep validation or `azure-deploy` for CI/CD setup.

Generated from the current SKILL.md. These answers refresh after source changes.