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.

referenceslanguagesjavatemplatesSUMMARY_TEMPLATE.md

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

<!-- This is the upgrade summary generated after successful completion of the Azure SDK migration. It documents the final results, changes made, and lessons learned. ## SUMMARY RULES !!! DON'T REMOVE THIS COMMENT BLOCK BEFORE UPGRADE IS COMPLETE AS IT CONTAINS IMPORTANT INSTRUCTIONS. ### Prerequisites (must be met before generating summary) - All steps in plan.md have ✅ in progress.md - Final Validation step completed successfully ### Success Criteria Verification - **Goal**: All legacy Azure SDK dependencies (com.microsoft.azure.*) replaced with modern equivalents (com.azure.*) - **Compilation**: Both main AND test code compile = `mvn clean test-compile` succeeds - **Test**: 100% pass rate = `mvn clean test` succeeds (or ≥ baseline with documented pre-existing flaky tests) ### Content Guidelines - **Upgrade Result**: MUST show 100% pass rate or justify EACH failure with exhaustive documentation - **Tech Stack Changes**: Table with Dependency | Before | After | Reason - **Commits**: List with IDs and messages from each step - **Challenges**: Key issues and resolutions encountered - **Limitations**: Only genuinely unfixable items where: (1) multiple fix approaches attempted, (2) root cause identified, (3) technically impossible to fix - **Next Steps**: Recommendations for post-upgrade actions ### Efficiency (IMPORTANT) - **Targeted reads**: Use `grep` over full file reads; read specific sections from progress.md, not entire files. -->

Upgrade Summary: <PROJECT_NAME> (<RUN_ID>)

  • Completed: <timestamp> <!-- replace with actual completion timestamp -->
  • Plan Location: plan.md
  • Progress Location: progress.md

Upgrade Result

<!-- Compare final compile/test results against baseline. MUST show 100% pass rate or justify EACH failure with exhaustive documentation. SAMPLE: | Metric | Baseline | Final | Status | | ---------- | ------------------ | ------------------ | ------ | | Compile | ✅ SUCCESS | ✅ SUCCESS | ✅ | | Tests | 12/12 passed | 12/12 passed | ✅ | | JDK | JDK 8 | JDK 8 | ✅ | | Build Tool | Maven 3.9.6 | Maven 3.9.6 | ✅ | **Upgrade Goals Achieved**: - ✅ All com.microsoft.azure.* dependencies replaced with com.azure.* equivalents - ✅ Source code migrated to modern Azure SDK APIs -->
Metric Baseline Final Status
Compile
Tests
JDK
Build Tool

Upgrade Goals Achieved:

Tech Stack Changes

<!-- Table documenting all dependency changes made during the upgrade. Only include dependencies that were actually changed. SAMPLE: | Dependency | Before | After | Reason | | ----------------------------------------------- | ------- | ------------------------------------------------ | ----------------------------------- | | com.microsoft.azure:azure-mgmt-resources | 1.41.4 | Removed | Replaced by azure-resourcemanager | | com.azure.resourcemanager:azure-resourcemanager | N/A | (managed by azure-sdk-bom) | Modern replacement | | com.microsoft.azure:azure-client-authentication | 1.7.14 | Removed | Replaced by azure-identity | | com.azure:azure-identity | N/A | (managed by azure-sdk-bom) | Modern auth library | | com.azure:azure-sdk-bom | N/A | <TARGET_AZURE_SDK_BOM_VERSION> | Centralized version management | -->
Dependency Before After Reason

Commits

<!-- List all commits made during the upgrade with their short IDs and messages. SAMPLE: | Commit | Message | | ------- | ---------------------------------------------------------------------- | | abc1234 | Step 1: Setup Baseline - Compile: SUCCESS \| Tests: 12/12 passed | | def5678 | Step 2: Migrate Azure Dependencies - Compile: SUCCESS | | ghi9012 | Step 3: Migrate Source Code - Compile: SUCCESS | | jkl3456 | Step 4: Final Validation - Compile: SUCCESS \| Tests: 12/12 passed | -->
Commit Message

Challenges

<!-- Document key challenges encountered during the upgrade and how they were resolved. SAMPLE: - **Authentication Migration** - **Issue**: Legacy code uses Azure.authenticate(credentialFile) which has no direct equivalent in modern SDK. - **Resolution**: Read credential file with Jackson ObjectMapper, construct ClientSecretCredential, use AzureProfile. - **Files Changed**: AzureHelper.java, AppConfig.java - **Fluent API Changes** - **Issue**: Method names differ between legacy Azure.management and modern azure-resourcemanager. - **Resolution**: Followed migration guide at https://aka.ms/java-track2-migration-guide - **Files Changed**: ResourceProvisioner.java, StorageSetup.java -->

Limitations

<!-- Document any genuinely unfixable limitations that remain after the upgrade. This section should be empty if all issues were resolved. Only include items where: (1) multiple fix approaches were attempted, (2) root cause is identified, (3) fix is technically impossible without breaking other functionality. -->

Review Code Changes Summary

<!-- Document review code changes results from the upgrade. This section ensures the upgrade is both sufficient (complete) and necessary (no extraneous changes), with original functionality and security controls preserved. VERIFICATION AREAS: 1. Sufficiency: All required upgrade changes are present — no missing modifications 2. Necessity: All changes are strictly necessary — no unnecessary modifications, including: - Functional Behavior Consistency: Business logic, API contracts, expected outputs - Security Controls Preservation (critical subset of behavior): - Authentication: Login mechanisms, session management, token validation, MFA configurations - Authorization: Role-based access control, permission checks, access policies, security annotations (@PreAuthorize, @Secured, etc.) - Password handling: Password encoding/hashing algorithms, password policies, credential storage - Security configurations: CORS policies, CSRF protection, security headers, SSL/TLS settings, OAuth/OIDC configurations - Audit logging: Security event logging, access logging SAMPLE (no issues): **Review Status**: ✅ All Passed **Sufficiency**: ✅ All required upgrade changes are present **Necessity**: ✅ All changes are strictly necessary - Functional Behavior: ✅ Preserved — business logic, API contracts unchanged - Security Controls: ✅ Preserved — authentication, authorization, password handling, security configs, audit logging unchanged SAMPLE (with behavior changes): **Review Status**: ⚠️ Changes Documented Below **Sufficiency**: ✅ All required upgrade changes are present **Necessity**: ⚠️ Behavior changes required by SDK migration (documented below) - Functional Behavior: ✅ Preserved - Security Controls: ⚠️ Changes made with equivalent protection | Area | Change Made | Reason | Equivalent Behavior | | ------------------ | ------------------------------------------------ | ---------------------------------------------- | --------------------- | | Authentication | Azure.authenticate() → ClientSecretCredential | Legacy auth API removed in modern SDK | ✅ Same credentials | -->

Next Steps

<!-- Recommendations for post-upgrade actions. SAMPLE: - [ ] Run full integration test suite in staging environment - [ ] Performance testing to validate no regression - [ ] Update CI/CD pipelines if dependency versions changed - [ ] Update documentation to reflect new Azure SDK versions - [ ] Review azure-sdk-bom version periodically for updates -->

Artifacts

  • Plan: .github/java-upgrade/<RUN_ID>/plan.md
  • Progress: .github/java-upgrade/<RUN_ID>/progress.md
  • Summary: .github/java-upgrade/<RUN_ID>/summary.md (this file)
  • Branch: java-upgrade/<RUN_ID>

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.