From 248ca71d4445ed7fad410247e1992c0344e07925 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 May 2026 15:15:39 +0000
Subject: [PATCH 1/6] Initial plan
From 42c2aea7dd2dec210ce153cf416ccce3c6e55ef3 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 May 2026 15:24:49 +0000
Subject: [PATCH 2/6] fix(docs): remove broken external URIs and replace
placeholder links
Agent-Logs-Url: https://github.com/microsoft/finops-toolkit/sessions/966e7305-52d7-4afc-a3d9-7f54676259c9
Co-authored-by: MSBrett <24294904+MSBrett@users.noreply.github.com>
---
docs-mslearn/best-practices/storage.md | 3 +-
docs-mslearn/framework/manage/onboarding.md | 4 +-
.../framework/quantify/benchmarking.md | 4 +-
docs-mslearn/toolkit/changelog.md | 4 +-
docs-mslearn/toolkit/hubs/deploy.md | 4 +-
docs-mslearn/toolkit/power-bi/setup.md | 4 +-
src/powershell/Tests/Unit/DocsLinks.Tests.ps1 | 53 +++++++++++++++++++
7 files changed, 64 insertions(+), 12 deletions(-)
diff --git a/docs-mslearn/best-practices/storage.md b/docs-mslearn/best-practices/storage.md
index 6e61ebd3f..cc15eaddd 100644
--- a/docs-mslearn/best-practices/storage.md
+++ b/docs-mslearn/best-practices/storage.md
@@ -3,7 +3,7 @@ title: FinOps best practices for Storage
description: This article outlines proven FinOps practices for storage services, focusing on cost optimization, efficiency improvements, and resource insights.
author: flanakin
ms.author: micflan
-ms.date: 04/01/2026
+ms.date: 05/12/2026
ms.topic: concept-article
ms.service: finops
ms.subservice: finops-learning-resources
@@ -76,7 +76,6 @@ Azure managed disks are block-level storage volumes that are managed by Azure an
Related resources:
-- [Managed disks product page](https://azure.microsoft.com/products/managed-disks)
- [Managed disks pricing](https://azure.microsoft.com/pricing/details/managed-disks)
- [Managed disks documentation](/azure/virtual-machines/managed-disks-overview)
diff --git a/docs-mslearn/framework/manage/onboarding.md b/docs-mslearn/framework/manage/onboarding.md
index 04a301c8a..7c17b61a5 100644
--- a/docs-mslearn/framework/manage/onboarding.md
+++ b/docs-mslearn/framework/manage/onboarding.md
@@ -3,7 +3,7 @@ title: Onboarding workloads
description: This article helps you understand the onboarding workloads capability within the FinOps Framework and how to implement that in the Microsoft Cloud.
author: flanakin
ms.author: micflan
-ms.date: 04/01/2026
+ms.date: 05/12/2026
ms.topic: concept-article
ms.service: finops
ms.subservice: finops-learning-resources
@@ -73,7 +73,7 @@ Document your onboarding process. Using existing tools and processes where avail
## Learn more at the FinOps Foundation
-This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, see the [Onboarding workloads capability](https://www.finops.org/framework/capabilities/onboarding-workloads/) article in the FinOps Framework documentation.
+This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, see the Onboarding workloads capability article in the FinOps Framework documentation.
You can also find related videos on the FinOps Foundation YouTube channel:
diff --git a/docs-mslearn/framework/quantify/benchmarking.md b/docs-mslearn/framework/quantify/benchmarking.md
index 4db88a05f..86bc4c837 100644
--- a/docs-mslearn/framework/quantify/benchmarking.md
+++ b/docs-mslearn/framework/quantify/benchmarking.md
@@ -3,7 +3,7 @@ title: FinOps benchmarking
description: This article helps you understand the benchmarking capability within the FinOps Framework and how to implement that in the Microsoft Cloud.
author: flanakin
ms.author: micflan
-ms.date: 04/01/2026
+ms.date: 05/12/2026
ms.topic: concept-article
ms.service: finops
ms.subservice: finops-learning-resources
@@ -58,7 +58,7 @@ At this point, you implemented best practices based on cross-company benchmarks
## Learn more at the FinOps Foundation
-This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, see to the [benchmarking](https://www.finops.org/framework/capabilities/benchmarking) article in the FinOps Framework documentation.
+This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, see the benchmarking article in the FinOps Framework documentation.
diff --git a/docs-mslearn/toolkit/changelog.md b/docs-mslearn/toolkit/changelog.md
index dc22e673f..ae8c96a9e 100644
--- a/docs-mslearn/toolkit/changelog.md
+++ b/docs-mslearn/toolkit/changelog.md
@@ -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: 04/29/2026
+ms.date: 05/12/2026
ms.topic: reference
ms.service: finops
ms.subservice: finops-toolkit
@@ -1058,7 +1058,7 @@ _**Breaking change**_
- Added param to disable external access to Azure Data Lake and Azure Data Explorer.
- Added param to specify subnet range of virtual network - minimum size = /26
- Support for storage account infrastructure encryption.
- - Published a [schema file](https://aka.ms/finops/hubs/settings-schema) for the hub settings.json file.
+ - Published a schema file for the hub settings.json file.
- **Changed**
- Changed dataset names in the ingestion container to facilitate Azure Data Explorer ingestion.
> [!IMPORTANT]
diff --git a/docs-mslearn/toolkit/hubs/deploy.md b/docs-mslearn/toolkit/hubs/deploy.md
index 4c7760ef0..eaae43be3 100644
--- a/docs-mslearn/toolkit/hubs/deploy.md
+++ b/docs-mslearn/toolkit/hubs/deploy.md
@@ -3,7 +3,7 @@ title: How to create and update FinOps hubs
description: This tutorial helps you create a new or update an existing FinOps hubs instance in Azure or Microsoft Fabric.
author: flanakin
ms.author: micflan
-ms.date: 04/21/2026
+ms.date: 05/12/2026
ms.topic: tutorial
ms.service: finops
ms.subservice: finops-toolkit
@@ -560,7 +560,7 @@ For more information, see [Configure Data Explorer dashboards](configure-dashboa
- **Azure Data Explorer (Kusto)** – Use an account that has at least viewer access to the Hub and Ingestion databases.
- **Azure Resource Graph** – Use an account that has direct access to any subscriptions you would like to report on.
- **(your storage account)** – Use a SAS token or an account that has Storage Blob Data Reader or greater access.
- - **...** – Anonymous access. This URL is used for reservation size flexibility data.
+ - **** – Anonymous access. This URL is used for reservation size flexibility data.
- **...** – Anonymous access. This URL is used for FinOps toolkit open data files.
For more information, see [Set up Power BI reports](../power-bi/setup.md).
diff --git a/docs-mslearn/toolkit/power-bi/setup.md b/docs-mslearn/toolkit/power-bi/setup.md
index 6aeae6653..7121162f8 100644
--- a/docs-mslearn/toolkit/power-bi/setup.md
+++ b/docs-mslearn/toolkit/power-bi/setup.md
@@ -3,7 +3,7 @@ title: Set up Power BI reports
description: Learn how to set up Power BI FinOps reports using the FinOps toolkit, customize visuals, and connect to your cost data for detailed analysis.
author: flanakin
ms.author: micflan
-ms.date: 04/01/2026
+ms.date: 05/12/2026
ms.topic: how-to
ms.service: finops
ms.subservice: finops-toolkit
@@ -115,7 +115,7 @@ The FinOps toolkit Power BI reports include preconfigured visuals, but aren't co
- **Azure Data Explorer (Kusto)** – Use an account that has at least viewer access to the Hub database.
- **Azure Resource Graph** – Use an account that has direct access to any subscriptions you would like to report on.
- **(your storage account)** – Use a SAS token or an account that has Storage Blob Data Reader or greater access.
- - **...** – Anonymous access. This URL is used for reservation size flexibility data.
+ - **** – Anonymous access. This URL is used for reservation size flexibility data.
- **...** – Anonymous access. This URL is used for FinOps toolkit open data files.
If you run into any issues syncing your data, see [Troubleshooting Power BI reports](../help/troubleshooting.md).
diff --git a/src/powershell/Tests/Unit/DocsLinks.Tests.ps1 b/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
index 5415919a6..eb3b085b9 100644
--- a/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
+++ b/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
@@ -102,6 +102,45 @@ BeforeDiscovery {
$mslearnFiles = Get-MarkdownFiles $mslearnRoot $mslearnRoot
$mslearnInternalLinks = Get-InternalMdLinks $mslearnFiles
$mslearnUrls = Get-MarkdownUrls $mslearnFiles
+ $knownBrokenExternalUrls = @(
+ 'https://azure.microsoft.com/products/managed-disks',
+ 'https://www.finops.org/framework/capabilities/onboarding-workloads/',
+ 'https://www.finops.org/framework/capabilities/benchmarking',
+ 'https://aka.ms/finops/hubs/settings-schema'
+ )
+ $knownBrokenExternalUrlMatches = @()
+ foreach ($file in $mslearnFiles)
+ {
+ $cleanContent = Remove-HtmlComments $file.Content
+ foreach ($url in $knownBrokenExternalUrls)
+ {
+ $matches = [regex]::Matches($cleanContent, [regex]::Escape($url))
+ foreach ($match in $matches)
+ {
+ $knownBrokenExternalUrlMatches += @{
+ SourceFile = $file.FullName
+ SourceRel = $file.RelativePath
+ Url = $url
+ LineNumber = ($cleanContent.Substring(0, $match.Index) -split "`n").Count
+ }
+ }
+ }
+ }
+ $incompleteExternalUrlMatches = @()
+ foreach ($file in $mslearnFiles)
+ {
+ $cleanContent = Remove-HtmlComments $file.Content
+ $matches = [regex]::Matches($cleanContent, 'https://ccmstorageprod(?!\.)')
+ foreach ($match in $matches)
+ {
+ $incompleteExternalUrlMatches += @{
+ SourceFile = $file.FullName
+ SourceRel = $file.RelativePath
+ Url = $match.Value
+ LineNumber = ($cleanContent.Substring(0, $match.Index) -split "`n").Count
+ }
+ }
+ }
#endregion
#region docs (Jekyll site)
@@ -259,6 +298,20 @@ Describe 'Documentation links' {
}
}
+ Context 'docs-mslearn: No known broken external URLs' {
+
+ It 'Should not contain known broken external URLs' {
+ $knownBrokenExternalUrlMatches | Should -BeNullOrEmpty -Because 'known broken external URLs should not appear in docs-mslearn content'
+ }
+ }
+
+ Context 'docs-mslearn: No incomplete placeholder external URLs' {
+
+ It 'Should not contain incomplete placeholder URLs' {
+ $incompleteExternalUrlMatches | Should -BeNullOrEmpty -Because 'incomplete placeholder URLs should not appear in docs-mslearn content'
+ }
+ }
+
#endregion
#region docs (Jekyll site)
From ea2c178f38c6dd527862432567eadad4e9bbeae9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 May 2026 15:30:17 +0000
Subject: [PATCH 3/6] test(docs): strengthen docs link regression checks
Agent-Logs-Url: https://github.com/microsoft/finops-toolkit/sessions/966e7305-52d7-4afc-a3d9-7f54676259c9
Co-authored-by: MSBrett <24294904+MSBrett@users.noreply.github.com>
---
docs-mslearn/framework/manage/onboarding.md | 2 +-
docs-mslearn/framework/quantify/benchmarking.md | 2 +-
docs-mslearn/toolkit/changelog.md | 2 +-
src/powershell/Tests/Unit/DocsLinks.Tests.ps1 | 17 ++++++++---------
4 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/docs-mslearn/framework/manage/onboarding.md b/docs-mslearn/framework/manage/onboarding.md
index 7c17b61a5..4220594b0 100644
--- a/docs-mslearn/framework/manage/onboarding.md
+++ b/docs-mslearn/framework/manage/onboarding.md
@@ -73,7 +73,7 @@ Document your onboarding process. Using existing tools and processes where avail
## Learn more at the FinOps Foundation
-This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, see the Onboarding workloads capability article in the FinOps Framework documentation.
+This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, refer to the FinOps Framework documentation.
You can also find related videos on the FinOps Foundation YouTube channel:
diff --git a/docs-mslearn/framework/quantify/benchmarking.md b/docs-mslearn/framework/quantify/benchmarking.md
index 86bc4c837..812780404 100644
--- a/docs-mslearn/framework/quantify/benchmarking.md
+++ b/docs-mslearn/framework/quantify/benchmarking.md
@@ -58,7 +58,7 @@ At this point, you implemented best practices based on cross-company benchmarks
## Learn more at the FinOps Foundation
-This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, see the benchmarking article in the FinOps Framework documentation.
+This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, refer to the FinOps Framework documentation.
diff --git a/docs-mslearn/toolkit/changelog.md b/docs-mslearn/toolkit/changelog.md
index ae8c96a9e..76fe1b70f 100644
--- a/docs-mslearn/toolkit/changelog.md
+++ b/docs-mslearn/toolkit/changelog.md
@@ -1058,7 +1058,7 @@ _**Breaking change**_
- Added param to disable external access to Azure Data Lake and Azure Data Explorer.
- Added param to specify subnet range of virtual network - minimum size = /26
- Support for storage account infrastructure encryption.
- - Published a schema file for the hub settings.json file.
+ - Published a schema file for the hub settings.json file in this release.
- **Changed**
- Changed dataset names in the ingestion container to facilitate Azure Data Explorer ingestion.
> [!IMPORTANT]
diff --git a/src/powershell/Tests/Unit/DocsLinks.Tests.ps1 b/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
index eb3b085b9..df2c882c0 100644
--- a/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
+++ b/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
@@ -108,14 +108,17 @@ BeforeDiscovery {
'https://www.finops.org/framework/capabilities/benchmarking',
'https://aka.ms/finops/hubs/settings-schema'
)
+ # Match incomplete ccmstorageprod URLs (no domain suffix), while allowing valid hosts like ccmstorageprod.blob.core.windows.net.
+ $incompletePlaceholderUrlPattern = 'https://ccmstorageprod(?!\.)'
$knownBrokenExternalUrlMatches = @()
+ $incompleteExternalUrlMatches = @()
foreach ($file in $mslearnFiles)
{
$cleanContent = Remove-HtmlComments $file.Content
foreach ($url in $knownBrokenExternalUrls)
{
- $matches = [regex]::Matches($cleanContent, [regex]::Escape($url))
- foreach ($match in $matches)
+ $urlMatches = [regex]::Matches($cleanContent, [regex]::Escape($url))
+ foreach ($match in $urlMatches)
{
$knownBrokenExternalUrlMatches += @{
SourceFile = $file.FullName
@@ -125,13 +128,9 @@ BeforeDiscovery {
}
}
}
- }
- $incompleteExternalUrlMatches = @()
- foreach ($file in $mslearnFiles)
- {
- $cleanContent = Remove-HtmlComments $file.Content
- $matches = [regex]::Matches($cleanContent, 'https://ccmstorageprod(?!\.)')
- foreach ($match in $matches)
+
+ $placeholderMatches = [regex]::Matches($cleanContent, $incompletePlaceholderUrlPattern)
+ foreach ($match in $placeholderMatches)
{
$incompleteExternalUrlMatches += @{
SourceFile = $file.FullName
From bf4fa18826fadabb61eced4be84de2d068a27aeb Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 May 2026 15:31:54 +0000
Subject: [PATCH 4/6] docs: point FinOps capability refs to framework home
Agent-Logs-Url: https://github.com/microsoft/finops-toolkit/sessions/966e7305-52d7-4afc-a3d9-7f54676259c9
Co-authored-by: MSBrett <24294904+MSBrett@users.noreply.github.com>
---
docs-mslearn/framework/manage/onboarding.md | 2 +-
docs-mslearn/framework/quantify/benchmarking.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs-mslearn/framework/manage/onboarding.md b/docs-mslearn/framework/manage/onboarding.md
index 4220594b0..e8a8800f1 100644
--- a/docs-mslearn/framework/manage/onboarding.md
+++ b/docs-mslearn/framework/manage/onboarding.md
@@ -73,7 +73,7 @@ Document your onboarding process. Using existing tools and processes where avail
## Learn more at the FinOps Foundation
-This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, refer to the FinOps Framework documentation.
+This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, refer to the [FinOps Framework documentation](https://www.finops.org/framework/).
You can also find related videos on the FinOps Foundation YouTube channel:
diff --git a/docs-mslearn/framework/quantify/benchmarking.md b/docs-mslearn/framework/quantify/benchmarking.md
index 812780404..5f18652ac 100644
--- a/docs-mslearn/framework/quantify/benchmarking.md
+++ b/docs-mslearn/framework/quantify/benchmarking.md
@@ -58,7 +58,7 @@ At this point, you implemented best practices based on cross-company benchmarks
## Learn more at the FinOps Foundation
-This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, refer to the FinOps Framework documentation.
+This capability is a part of the FinOps Framework by the FinOps Foundation, a non-profit organization dedicated to advancing cloud cost management and optimization. For more information about FinOps, including useful playbooks, training and certification programs, and more, refer to the [FinOps Framework documentation](https://www.finops.org/framework/).
From 0b9f458bdf688ed7c54753bd569c974e535498e9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 May 2026 16:25:49 +0000
Subject: [PATCH 5/6] test(docs): fix vacuous broken-link guard assertions
Agent-Logs-Url: https://github.com/microsoft/finops-toolkit/sessions/231bd2bf-9bcb-4b1a-9ec7-958f98fbd94e
Co-authored-by: MSBrett <24294904+MSBrett@users.noreply.github.com>
---
src/powershell/Tests/Unit/DocsLinks.Tests.ps1 | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/powershell/Tests/Unit/DocsLinks.Tests.ps1 b/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
index df2c882c0..774a409d3 100644
--- a/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
+++ b/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
@@ -299,15 +299,15 @@ Describe 'Documentation links' {
Context 'docs-mslearn: No known broken external URLs' {
- It 'Should not contain known broken external URLs' {
- $knownBrokenExternalUrlMatches | Should -BeNullOrEmpty -Because 'known broken external URLs should not appear in docs-mslearn content'
+ It 'Should not contain known broken external URL: : ' -ForEach $knownBrokenExternalUrlMatches {
+ $Url | Should -Not -Match '^(https://azure.microsoft.com/products/managed-disks|https://www.finops.org/framework/capabilities/onboarding-workloads/|https://www.finops.org/framework/capabilities/benchmarking|https://aka.ms/finops/hubs/settings-schema)$' -Because "known broken external URLs should not appear in docs-mslearn content (${SourceRel}:${LineNumber})"
}
}
Context 'docs-mslearn: No incomplete placeholder external URLs' {
- It 'Should not contain incomplete placeholder URLs' {
- $incompleteExternalUrlMatches | Should -BeNullOrEmpty -Because 'incomplete placeholder URLs should not appear in docs-mslearn content'
+ It 'Should not contain incomplete placeholder URL: : ' -ForEach $incompleteExternalUrlMatches {
+ $Url | Should -Not -Match '^https://ccmstorageprod(?!\.)' -Because "incomplete placeholder URLs should not appear in docs-mslearn content (${SourceRel}:${LineNumber})"
}
}
From 645c9ff0923fafd16edc8664b512911fe89feaa7 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 May 2026 16:26:57 +0000
Subject: [PATCH 6/6] test(docs): execute broken-link guards via foreach cases
Agent-Logs-Url: https://github.com/microsoft/finops-toolkit/sessions/231bd2bf-9bcb-4b1a-9ec7-958f98fbd94e
Co-authored-by: MSBrett <24294904+MSBrett@users.noreply.github.com>
---
src/powershell/Tests/Unit/DocsLinks.Tests.ps1 | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/powershell/Tests/Unit/DocsLinks.Tests.ps1 b/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
index 774a409d3..5d92fa414 100644
--- a/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
+++ b/src/powershell/Tests/Unit/DocsLinks.Tests.ps1
@@ -124,6 +124,7 @@ BeforeDiscovery {
SourceFile = $file.FullName
SourceRel = $file.RelativePath
Url = $url
+ Pattern = "^$([regex]::Escape($url))$"
LineNumber = ($cleanContent.Substring(0, $match.Index) -split "`n").Count
}
}
@@ -136,6 +137,7 @@ BeforeDiscovery {
SourceFile = $file.FullName
SourceRel = $file.RelativePath
Url = $match.Value
+ Pattern = $incompletePlaceholderUrlPattern
LineNumber = ($cleanContent.Substring(0, $match.Index) -split "`n").Count
}
}
@@ -300,14 +302,14 @@ Describe 'Documentation links' {
Context 'docs-mslearn: No known broken external URLs' {
It 'Should not contain known broken external URL: : ' -ForEach $knownBrokenExternalUrlMatches {
- $Url | Should -Not -Match '^(https://azure.microsoft.com/products/managed-disks|https://www.finops.org/framework/capabilities/onboarding-workloads/|https://www.finops.org/framework/capabilities/benchmarking|https://aka.ms/finops/hubs/settings-schema)$' -Because "known broken external URLs should not appear in docs-mslearn content (${SourceRel}:${LineNumber})"
+ $Url | Should -Not -Match $Pattern -Because "known broken external URLs should not appear in docs-mslearn content (${SourceRel}:${LineNumber})"
}
}
Context 'docs-mslearn: No incomplete placeholder external URLs' {
It 'Should not contain incomplete placeholder URL: : ' -ForEach $incompleteExternalUrlMatches {
- $Url | Should -Not -Match '^https://ccmstorageprod(?!\.)' -Because "incomplete placeholder URLs should not appear in docs-mslearn content (${SourceRel}:${LineNumber})"
+ $Url | Should -Not -Match $Pattern -Because "incomplete placeholder URLs should not appear in docs-mslearn content (${SourceRel}:${LineNumber})"
}
}