Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
c488031
fix(open-data): make commitment discount eligibility fetch reliable
Jun 3, 2026
72f7490
chore(open-data): regenerate commitment discount eligibility data
Jun 3, 2026
2573af3
fix: guard null Response in retry/backoff (Copilot review)
Jun 3, 2026
7037999
fix: address review feedback on eligibility fetch guards
Jun 18, 2026
9894db4
fix(open-data): discover serviceFamily shards dynamically (review)
Jun 19, 2026
ee9bb06
fix(open-data): use empty target in PSReviewUnusedParameter suppressi…
Jun 19, 2026
ff6892d
fix(open-data): URL-encode serviceFamily in shard filter
Jun 19, 2026
166d47b
chore(open-data): regenerate eligibility data with dynamic discovery
Jun 19, 2026
cb984ca
style(open-data): index cached shard baseline by key explicitly
Jun 19, 2026
4b69ac4
fix(open-data): harden discovery/guards + add unit tests (review)
Jun 19, 2026
9cd7f12
fix(open-data): surface baseline-only changes; validate MaxShrinkFrac…
Jun 19, 2026
ea3aa9b
docs(changelog): add entry for commitment discount eligibility fix
Jun 20, 2026
25116d5
Merge remote-tracking branch 'origin/dev' into fix/commitment-eligibi…
Jun 21, 2026
027f54a
chore: Update ms.date in docs-mslearn files
github-actions[bot] Jun 21, 2026
467f66e
Merge remote-tracking branch 'origin/dev' into fix/commitment-eligibi…
Jun 29, 2026
c748ffe
chore: Update ms.date in docs-mslearn files
github-actions[bot] Jun 29, 2026
3fd7973
fix(open-data): keep eligibility shardcounts sidecar out of release p…
Jun 29, 2026
5a49cfc
fix(open-data): converge serviceFamily discovery instead of a single …
Jul 31, 2026
fa53f4f
Merge remote-tracking branch 'origin/dev' into fix/commitment-eligibi…
Jul 31, 2026
1509152
chore: Update ms.date in docs-mslearn files
github-actions[bot] Jul 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/opendata-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ on:
paths:
- 'src/open-data/*.csv'
- 'src/open-data/*.json'
# Internal operational baselines for the eligibility completeness guard, not
# reference data; Build-OpenData ignores them, so they shouldn't trigger CI.
- '!src/open-data/*.shardcounts.json'
permissions:
contents: write
pull-requests: write
Expand Down
54 changes: 24 additions & 30 deletions .github/workflows/opendata-commitment-eligibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ on:

permissions:
contents: write
pull-requests: write

jobs:
update:
Expand All @@ -22,42 +21,37 @@ jobs:
shell: pwsh
run: src/scripts/Update-CommitmentDiscountEligibility.ps1

- name: Create PR if data changed
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_BODY: |
## Summary

Weekly automated update of commitment discount eligibility data from the
[Azure Retail Prices API](https://learn.microsoft.com/rest/api/cost-management/retail-prices/azure-retail-prices).

This file lists Azure meters that are eligible for Reserved Instances and/or
Savings Plans, used by FinOps Hubs to populate `x_CommitmentDiscountSpendEligibility`
and `x_CommitmentDiscountUsageEligibility` columns.

## Test plan

- [ ] Review the diff for unexpected changes (large drops in meter count, etc.)
- [ ] Spot-check a few meter IDs against the Azure Pricing Calculator

🤖 Generated by the **Update Commitment Discount Eligibility** workflow
# GitHub Actions is not permitted to open pull requests in this org, so we push
# a branch and surface a one-click "create PR" link in the job summary for a
# maintainer to open. Opening the PR triggers Open Data CI and normal review.
- name: Push branch and surface PR link if data changed
run: |
# Check for changes (handles both new file and modified file)
if git diff --quiet --exit-code -- src/open-data/CommitmentDiscountEligibility.csv 2>/dev/null && \
! git ls-files --others --exclude-standard | grep -q 'CommitmentDiscountEligibility.csv'; then
# Check for changes to the CSV or the per-shard baseline (handles both
# modified and newly-created/untracked files). The baseline is checked too
# so a counts-only update (no eligibility change) is still surfaced.
if git diff --quiet --exit-code -- src/open-data/CommitmentDiscountEligibility.csv src/open-data/CommitmentDiscountEligibility.shardcounts.json 2>/dev/null && \
! git ls-files --others --exclude-standard -- src/open-data/ | grep -qE 'CommitmentDiscountEligibility\.(csv|shardcounts\.json)'; then
echo "No changes detected"
exit 0
fi

BRANCH="opendata/commitment-eligibility-$(date +%Y%m%d)"
git checkout -b "$BRANCH"
BRANCH="opendata/commitment-eligibility-$(date +%Y%m%d)-${{ github.run_number }}"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add src/open-data/CommitmentDiscountEligibility.csv
git checkout -b "$BRANCH"
git add src/open-data/CommitmentDiscountEligibility.csv src/open-data/CommitmentDiscountEligibility.shardcounts.json
git commit -m "chore: Update commitment discount eligibility data"
git push origin "$BRANCH"

gh pr create \
--title "[Open Data] Update commitment discount eligibility data ($(date +'%B %Y'))" \
--base dev \
--body "$PR_BODY"
PR_URL="${{ github.server_url }}/${{ github.repository }}/compare/dev...${BRANCH}?expand=1"
{
echo "### Commitment discount eligibility data updated"
echo ""
echo "Pushed branch \`${BRANCH}\`. GitHub Actions cannot open PRs in this repo, so open it manually:"
echo ""
echo "[**Create pull request →**](${PR_URL})"
echo ""
echo "Review the diff for unexpected changes (e.g. a large drop in meter count) and spot-check a few meter IDs against the Azure Pricing Calculator before merging to \`dev\`."
} >> "$GITHUB_STEP_SUMMARY"
echo "Branch pushed: $BRANCH"
echo "Open a PR here: $PR_URL"
7 changes: 6 additions & 1 deletion docs-mslearn/toolkit/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: FinOps toolkit changelog
description: Review the latest features and enhancements in the FinOps toolkit, including updates to FinOps hubs, Power BI reports, and more.
author: MSBrett
ms.author: brettwil
ms.date: 07/30/2026
ms.date: 07/31/2026
ms.topic: reference
ms.service: finops
ms.subservice: finops-toolkit
Expand Down Expand Up @@ -52,6 +52,11 @@ The following section lists features and enhancements that are currently in deve
- **Added**
- Added a new [Instance size flexibility](open-data.md#instance-size-flexibility) dataset that maps each ARM SKU to its instance size flexibility group and ratio, sourced from the Azure Reservations Catalogs API. It replaces the deprecated ISF ratio files hosted on `ccmstorageprod.blob.core.windows.net` ([#2090](https://github.com/microsoft/finops-toolkit/issues/2090)).

**[Commitment discount eligibility](open-data.md#commitment-discount-eligibility)**

- **Fixed**
- Fixed the commitment discount eligibility dataset refresh so it is reproducible and complete; retired meters now age out and previously missed meters are included ([#2164](https://github.com/microsoft/finops-toolkit/pull/2164)).

-->

<br><a name="latest"></a>
Expand Down
Loading