Fix DSC 3.0 for resources - #45

Open
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops
Open

Fix DSC 3.0 for resources#45
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops

Conversation

@mimachniak

@mimachniakmimachniak commented Jan 19, 2026

Copy link
Copy Markdown

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

Task list

  • Added an entry to the change log under the Unreleased section of the
    file CHANGELOG.md. Entry should say what was changed and how that
    affects users (if applicable), and reference the issue being resolved
    (if applicable).
  • Resource documentation updated in the resource's README.md.
  • Resource parameter descriptions updated in schema.mof.
  • Comment-based help updated, including parameter descriptions.
  • Localization strings updated.
  • Examples updated.
  • Unit tests updated. See DSC Community Testing Guidelines.
  • Integration tests updated (where possible). See DSC Community Testing Guidelines.
  • Code changes adheres to DSC Community Style Guidelines.

This change is Reviewable

@coderabbitai

coderabbitaiBot commented Jan 19, 2026

Copy link
Copy Markdown

Walkthrough

Two validation constraints were relaxed: the AzDevOpsProject class's SourceControlType property no longer enforces predefined values ('Git', 'Tfvc') through ValidateSet, and the Test-AzDevOpsPat function removes the length check requirement for PAT validation.

Changes

Cohort / File(s)Summary
Validation constraint relaxation
source/Classes/010.AzDevOpsProject.ps1, source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1
SourceControlType property ValidateSet attribute commented out, disabling enforcement of 'Git' and 'Tfvc' values. Test-AzDevOpsPat function length check (52 characters) removed from PAT validation logic.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'Fix DSC 3.0 for resources' is vague and generic, using non-descriptive terms that don't convey specific meaningful information about the actual changes (ValidateSet removal and PAT length check modification).Clarify the title to be more specific about the actual changes, such as 'Remove ValidateSet validation and PAT length check for DSC 3.0 compatibility' or reference the specific components being fixed.
Description check❓ InconclusiveThe PR description contains only the repository template and unchecked task checklist with no actual description of the changes, issues being fixed, or rationale for the modifications.Replace the template placeholders with a concrete description of what was changed and why, explain how these changes fix DSC 3.0 compatibility, and provide a CHANGELOG entry.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
`@source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1`:
- Line 39: Update the comment-based help for Test-AzDevOpsPat (in
Test-AzDevOpsPat.ps1) to state that the function only validates that the PAT is
non-empty/non-whitespace (not its length or format), and then update the test
definitions in CommonTestCases.psm1 (the PAT cases around the 222-233 block) to
treat any non-empty string as valid (remove the 52-character exact-length
restriction) so tests match the implementation; alternatively, if DSC 3.0
requires format validation, restore the length/format check inside
Test-AzDevOpsPat instead and keep the tests as-is—pick one of these two paths
and make the help, implementation (Test-AzDevOpsPat) and test data
(CommonTestCases.psm1) consistent.
🧹 Nitpick comments (3)
source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1 (1)

1-22: Consider completing comment-based help sections.

The comment-based help is missing .DESCRIPTION (should be 40+ chars per guidelines), .INPUTS, and .OUTPUTS sections. Since this is an existing file with a minor change, this can be addressed in a future PR.

source/AzureDevOpsDsc.psd1 (2)

5-5: Property naming inconsistency.

moduleVersion uses camelCase while other manifest properties use PascalCase (e.g., RootModule, CompanyName). Consider using ModuleVersion for consistency.

♻️ Suggested fix
- moduleVersion = '0.3.0'+ ModuleVersion = '0.3.0'

46-46: Extra blank line.

There are two consecutive blank lines between NestedModules and DscResourcesToExport. One blank line would be sufficient for separation.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@source/Classes/010.AzDevOpsProject.ps1`:
- Around line 39-41: Remove the commented-out ValidateSet line for the
SourceControlType property (the "[ValidateSet('Git', 'Tfvc')]" comment) and, if
you still need to enforce allowed values, implement runtime validation in the
class's AssertProperties() or NormalizeProperties() method: check that the
SourceControlType property is either "Git" or "Tfvc" and throw/normalize
accordingly. This keeps the property declaration clean and moves schema
enforcement to AssertProperties()/NormalizeProperties() as suggested.

Comment threadsource/Classes/010.AzDevOpsProject.ps1
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mimachniak
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Fix DSC 3.0 for resources - #45

Open
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops
Open

Fix DSC 3.0 for resources#45
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops

Conversation

@mimachniak

@mimachniakmimachniak commented Jan 19, 2026

Copy link
Copy Markdown

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

Task list

  • Added an entry to the change log under the Unreleased section of the
    file CHANGELOG.md. Entry should say what was changed and how that
    affects users (if applicable), and reference the issue being resolved
    (if applicable).
  • Resource documentation updated in the resource's README.md.
  • Resource parameter descriptions updated in schema.mof.
  • Comment-based help updated, including parameter descriptions.
  • Localization strings updated.
  • Examples updated.
  • Unit tests updated. See DSC Community Testing Guidelines.
  • Integration tests updated (where possible). See DSC Community Testing Guidelines.
  • Code changes adheres to DSC Community Style Guidelines.

This change is Reviewable

@coderabbitai

coderabbitaiBot commented Jan 19, 2026

Copy link
Copy Markdown

Walkthrough

Two validation constraints were relaxed: the AzDevOpsProject class's SourceControlType property no longer enforces predefined values ('Git', 'Tfvc') through ValidateSet, and the Test-AzDevOpsPat function removes the length check requirement for PAT validation.

Changes

Cohort / File(s)Summary
Validation constraint relaxation
source/Classes/010.AzDevOpsProject.ps1, source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1
SourceControlType property ValidateSet attribute commented out, disabling enforcement of 'Git' and 'Tfvc' values. Test-AzDevOpsPat function length check (52 characters) removed from PAT validation logic.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'Fix DSC 3.0 for resources' is vague and generic, using non-descriptive terms that don't convey specific meaningful information about the actual changes (ValidateSet removal and PAT length check modification).Clarify the title to be more specific about the actual changes, such as 'Remove ValidateSet validation and PAT length check for DSC 3.0 compatibility' or reference the specific components being fixed.
Description check❓ InconclusiveThe PR description contains only the repository template and unchecked task checklist with no actual description of the changes, issues being fixed, or rationale for the modifications.Replace the template placeholders with a concrete description of what was changed and why, explain how these changes fix DSC 3.0 compatibility, and provide a CHANGELOG entry.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
`@source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1`:
- Line 39: Update the comment-based help for Test-AzDevOpsPat (in
Test-AzDevOpsPat.ps1) to state that the function only validates that the PAT is
non-empty/non-whitespace (not its length or format), and then update the test
definitions in CommonTestCases.psm1 (the PAT cases around the 222-233 block) to
treat any non-empty string as valid (remove the 52-character exact-length
restriction) so tests match the implementation; alternatively, if DSC 3.0
requires format validation, restore the length/format check inside
Test-AzDevOpsPat instead and keep the tests as-is—pick one of these two paths
and make the help, implementation (Test-AzDevOpsPat) and test data
(CommonTestCases.psm1) consistent.
🧹 Nitpick comments (3)
source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1 (1)

1-22: Consider completing comment-based help sections.

The comment-based help is missing .DESCRIPTION (should be 40+ chars per guidelines), .INPUTS, and .OUTPUTS sections. Since this is an existing file with a minor change, this can be addressed in a future PR.

source/AzureDevOpsDsc.psd1 (2)

5-5: Property naming inconsistency.

moduleVersion uses camelCase while other manifest properties use PascalCase (e.g., RootModule, CompanyName). Consider using ModuleVersion for consistency.

♻️ Suggested fix
- moduleVersion = '0.3.0'+ ModuleVersion = '0.3.0'

46-46: Extra blank line.

There are two consecutive blank lines between NestedModules and DscResourcesToExport. One blank line would be sufficient for separation.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@source/Classes/010.AzDevOpsProject.ps1`:
- Around line 39-41: Remove the commented-out ValidateSet line for the
SourceControlType property (the "[ValidateSet('Git', 'Tfvc')]" comment) and, if
you still need to enforce allowed values, implement runtime validation in the
class's AssertProperties() or NormalizeProperties() method: check that the
SourceControlType property is either "Git" or "Tfvc" and throw/normalize
accordingly. This keeps the property declaration clean and moves schema
enforcement to AssertProperties()/NormalizeProperties() as suggested.

Comment threadsource/Classes/010.AzDevOpsProject.ps1
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mimachniak
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix DSC 3.0 for resources - #45

Open
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops
Open

Fix DSC 3.0 for resources#45
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops

Conversation

@mimachniak

@mimachniakmimachniak commented Jan 19, 2026

Copy link
Copy Markdown

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

Task list

  • Added an entry to the change log under the Unreleased section of the
    file CHANGELOG.md. Entry should say what was changed and how that
    affects users (if applicable), and reference the issue being resolved
    (if applicable).
  • Resource documentation updated in the resource's README.md.
  • Resource parameter descriptions updated in schema.mof.
  • Comment-based help updated, including parameter descriptions.
  • Localization strings updated.
  • Examples updated.
  • Unit tests updated. See DSC Community Testing Guidelines.
  • Integration tests updated (where possible). See DSC Community Testing Guidelines.
  • Code changes adheres to DSC Community Style Guidelines.

This change is Reviewable

@coderabbitai

coderabbitaiBot commented Jan 19, 2026

Copy link
Copy Markdown

Walkthrough

Two validation constraints were relaxed: the AzDevOpsProject class's SourceControlType property no longer enforces predefined values ('Git', 'Tfvc') through ValidateSet, and the Test-AzDevOpsPat function removes the length check requirement for PAT validation.

Changes

Cohort / File(s)Summary
Validation constraint relaxation
source/Classes/010.AzDevOpsProject.ps1, source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1
SourceControlType property ValidateSet attribute commented out, disabling enforcement of 'Git' and 'Tfvc' values. Test-AzDevOpsPat function length check (52 characters) removed from PAT validation logic.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'Fix DSC 3.0 for resources' is vague and generic, using non-descriptive terms that don't convey specific meaningful information about the actual changes (ValidateSet removal and PAT length check modification).Clarify the title to be more specific about the actual changes, such as 'Remove ValidateSet validation and PAT length check for DSC 3.0 compatibility' or reference the specific components being fixed.
Description check❓ InconclusiveThe PR description contains only the repository template and unchecked task checklist with no actual description of the changes, issues being fixed, or rationale for the modifications.Replace the template placeholders with a concrete description of what was changed and why, explain how these changes fix DSC 3.0 compatibility, and provide a CHANGELOG entry.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
`@source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1`:
- Line 39: Update the comment-based help for Test-AzDevOpsPat (in
Test-AzDevOpsPat.ps1) to state that the function only validates that the PAT is
non-empty/non-whitespace (not its length or format), and then update the test
definitions in CommonTestCases.psm1 (the PAT cases around the 222-233 block) to
treat any non-empty string as valid (remove the 52-character exact-length
restriction) so tests match the implementation; alternatively, if DSC 3.0
requires format validation, restore the length/format check inside
Test-AzDevOpsPat instead and keep the tests as-is—pick one of these two paths
and make the help, implementation (Test-AzDevOpsPat) and test data
(CommonTestCases.psm1) consistent.
🧹 Nitpick comments (3)
source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1 (1)

1-22: Consider completing comment-based help sections.

The comment-based help is missing .DESCRIPTION (should be 40+ chars per guidelines), .INPUTS, and .OUTPUTS sections. Since this is an existing file with a minor change, this can be addressed in a future PR.

source/AzureDevOpsDsc.psd1 (2)

5-5: Property naming inconsistency.

moduleVersion uses camelCase while other manifest properties use PascalCase (e.g., RootModule, CompanyName). Consider using ModuleVersion for consistency.

♻️ Suggested fix
- moduleVersion = '0.3.0'+ ModuleVersion = '0.3.0'

46-46: Extra blank line.

There are two consecutive blank lines between NestedModules and DscResourcesToExport. One blank line would be sufficient for separation.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@source/Classes/010.AzDevOpsProject.ps1`:
- Around line 39-41: Remove the commented-out ValidateSet line for the
SourceControlType property (the "[ValidateSet('Git', 'Tfvc')]" comment) and, if
you still need to enforce allowed values, implement runtime validation in the
class's AssertProperties() or NormalizeProperties() method: check that the
SourceControlType property is either "Git" or "Tfvc" and throw/normalize
accordingly. This keeps the property declaration clean and moves schema
enforcement to AssertProperties()/NormalizeProperties() as suggested.

Comment threadsource/Classes/010.AzDevOpsProject.ps1
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mimachniak
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix DSC 3.0 for resources - #45

Open
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops
Open

Fix DSC 3.0 for resources#45
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops

Conversation

@mimachniak

@mimachniakmimachniak commented Jan 19, 2026

Copy link
Copy Markdown

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

Task list

  • Added an entry to the change log under the Unreleased section of the
    file CHANGELOG.md. Entry should say what was changed and how that
    affects users (if applicable), and reference the issue being resolved
    (if applicable).
  • Resource documentation updated in the resource's README.md.
  • Resource parameter descriptions updated in schema.mof.
  • Comment-based help updated, including parameter descriptions.
  • Localization strings updated.
  • Examples updated.
  • Unit tests updated. See DSC Community Testing Guidelines.
  • Integration tests updated (where possible). See DSC Community Testing Guidelines.
  • Code changes adheres to DSC Community Style Guidelines.

This change is Reviewable

@coderabbitai

coderabbitaiBot commented Jan 19, 2026

Copy link
Copy Markdown

Walkthrough

Two validation constraints were relaxed: the AzDevOpsProject class's SourceControlType property no longer enforces predefined values ('Git', 'Tfvc') through ValidateSet, and the Test-AzDevOpsPat function removes the length check requirement for PAT validation.

Changes

Cohort / File(s)Summary
Validation constraint relaxation
source/Classes/010.AzDevOpsProject.ps1, source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1
SourceControlType property ValidateSet attribute commented out, disabling enforcement of 'Git' and 'Tfvc' values. Test-AzDevOpsPat function length check (52 characters) removed from PAT validation logic.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'Fix DSC 3.0 for resources' is vague and generic, using non-descriptive terms that don't convey specific meaningful information about the actual changes (ValidateSet removal and PAT length check modification).Clarify the title to be more specific about the actual changes, such as 'Remove ValidateSet validation and PAT length check for DSC 3.0 compatibility' or reference the specific components being fixed.
Description check❓ InconclusiveThe PR description contains only the repository template and unchecked task checklist with no actual description of the changes, issues being fixed, or rationale for the modifications.Replace the template placeholders with a concrete description of what was changed and why, explain how these changes fix DSC 3.0 compatibility, and provide a CHANGELOG entry.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
`@source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1`:
- Line 39: Update the comment-based help for Test-AzDevOpsPat (in
Test-AzDevOpsPat.ps1) to state that the function only validates that the PAT is
non-empty/non-whitespace (not its length or format), and then update the test
definitions in CommonTestCases.psm1 (the PAT cases around the 222-233 block) to
treat any non-empty string as valid (remove the 52-character exact-length
restriction) so tests match the implementation; alternatively, if DSC 3.0
requires format validation, restore the length/format check inside
Test-AzDevOpsPat instead and keep the tests as-is—pick one of these two paths
and make the help, implementation (Test-AzDevOpsPat) and test data
(CommonTestCases.psm1) consistent.
🧹 Nitpick comments (3)
source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1 (1)

1-22: Consider completing comment-based help sections.

The comment-based help is missing .DESCRIPTION (should be 40+ chars per guidelines), .INPUTS, and .OUTPUTS sections. Since this is an existing file with a minor change, this can be addressed in a future PR.

source/AzureDevOpsDsc.psd1 (2)

5-5: Property naming inconsistency.

moduleVersion uses camelCase while other manifest properties use PascalCase (e.g., RootModule, CompanyName). Consider using ModuleVersion for consistency.

♻️ Suggested fix
- moduleVersion = '0.3.0'+ ModuleVersion = '0.3.0'

46-46: Extra blank line.

There are two consecutive blank lines between NestedModules and DscResourcesToExport. One blank line would be sufficient for separation.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@source/Classes/010.AzDevOpsProject.ps1`:
- Around line 39-41: Remove the commented-out ValidateSet line for the
SourceControlType property (the "[ValidateSet('Git', 'Tfvc')]" comment) and, if
you still need to enforce allowed values, implement runtime validation in the
class's AssertProperties() or NormalizeProperties() method: check that the
SourceControlType property is either "Git" or "Tfvc" and throw/normalize
accordingly. This keeps the property declaration clean and moves schema
enforcement to AssertProperties()/NormalizeProperties() as suggested.

Comment threadsource/Classes/010.AzDevOpsProject.ps1
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mimachniak
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Fix DSC 3.0 for resources - #45

Open
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops
Open

Fix DSC 3.0 for resources#45
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops

Conversation

@mimachniak

@mimachniakmimachniak commented Jan 19, 2026

Copy link
Copy Markdown

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

Task list

  • Added an entry to the change log under the Unreleased section of the
    file CHANGELOG.md. Entry should say what was changed and how that
    affects users (if applicable), and reference the issue being resolved
    (if applicable).
  • Resource documentation updated in the resource's README.md.
  • Resource parameter descriptions updated in schema.mof.
  • Comment-based help updated, including parameter descriptions.
  • Localization strings updated.
  • Examples updated.
  • Unit tests updated. See DSC Community Testing Guidelines.
  • Integration tests updated (where possible). See DSC Community Testing Guidelines.
  • Code changes adheres to DSC Community Style Guidelines.

This change is Reviewable

@coderabbitai

coderabbitaiBot commented Jan 19, 2026

Copy link
Copy Markdown

Walkthrough

Two validation constraints were relaxed: the AzDevOpsProject class's SourceControlType property no longer enforces predefined values ('Git', 'Tfvc') through ValidateSet, and the Test-AzDevOpsPat function removes the length check requirement for PAT validation.

Changes

Cohort / File(s)Summary
Validation constraint relaxation
source/Classes/010.AzDevOpsProject.ps1, source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1
SourceControlType property ValidateSet attribute commented out, disabling enforcement of 'Git' and 'Tfvc' values. Test-AzDevOpsPat function length check (52 characters) removed from PAT validation logic.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'Fix DSC 3.0 for resources' is vague and generic, using non-descriptive terms that don't convey specific meaningful information about the actual changes (ValidateSet removal and PAT length check modification).Clarify the title to be more specific about the actual changes, such as 'Remove ValidateSet validation and PAT length check for DSC 3.0 compatibility' or reference the specific components being fixed.
Description check❓ InconclusiveThe PR description contains only the repository template and unchecked task checklist with no actual description of the changes, issues being fixed, or rationale for the modifications.Replace the template placeholders with a concrete description of what was changed and why, explain how these changes fix DSC 3.0 compatibility, and provide a CHANGELOG entry.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
`@source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1`:
- Line 39: Update the comment-based help for Test-AzDevOpsPat (in
Test-AzDevOpsPat.ps1) to state that the function only validates that the PAT is
non-empty/non-whitespace (not its length or format), and then update the test
definitions in CommonTestCases.psm1 (the PAT cases around the 222-233 block) to
treat any non-empty string as valid (remove the 52-character exact-length
restriction) so tests match the implementation; alternatively, if DSC 3.0
requires format validation, restore the length/format check inside
Test-AzDevOpsPat instead and keep the tests as-is—pick one of these two paths
and make the help, implementation (Test-AzDevOpsPat) and test data
(CommonTestCases.psm1) consistent.
🧹 Nitpick comments (3)
source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1 (1)

1-22: Consider completing comment-based help sections.

The comment-based help is missing .DESCRIPTION (should be 40+ chars per guidelines), .INPUTS, and .OUTPUTS sections. Since this is an existing file with a minor change, this can be addressed in a future PR.

source/AzureDevOpsDsc.psd1 (2)

5-5: Property naming inconsistency.

moduleVersion uses camelCase while other manifest properties use PascalCase (e.g., RootModule, CompanyName). Consider using ModuleVersion for consistency.

♻️ Suggested fix
- moduleVersion = '0.3.0'+ ModuleVersion = '0.3.0'

46-46: Extra blank line.

There are two consecutive blank lines between NestedModules and DscResourcesToExport. One blank line would be sufficient for separation.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@source/Classes/010.AzDevOpsProject.ps1`:
- Around line 39-41: Remove the commented-out ValidateSet line for the
SourceControlType property (the "[ValidateSet('Git', 'Tfvc')]" comment) and, if
you still need to enforce allowed values, implement runtime validation in the
class's AssertProperties() or NormalizeProperties() method: check that the
SourceControlType property is either "Git" or "Tfvc" and throw/normalize
accordingly. This keeps the property declaration clean and moves schema
enforcement to AssertProperties()/NormalizeProperties() as suggested.

Comment threadsource/Classes/010.AzDevOpsProject.ps1
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mimachniak
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix DSC 3.0 for resources - #45

Open
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops
Open

Fix DSC 3.0 for resources#45
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops

Conversation

@mimachniak

@mimachniakmimachniak commented Jan 19, 2026

Copy link
Copy Markdown

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

Task list

  • Added an entry to the change log under the Unreleased section of the
    file CHANGELOG.md. Entry should say what was changed and how that
    affects users (if applicable), and reference the issue being resolved
    (if applicable).
  • Resource documentation updated in the resource's README.md.
  • Resource parameter descriptions updated in schema.mof.
  • Comment-based help updated, including parameter descriptions.
  • Localization strings updated.
  • Examples updated.
  • Unit tests updated. See DSC Community Testing Guidelines.
  • Integration tests updated (where possible). See DSC Community Testing Guidelines.
  • Code changes adheres to DSC Community Style Guidelines.

This change is Reviewable

@coderabbitai

coderabbitaiBot commented Jan 19, 2026

Copy link
Copy Markdown

Walkthrough

Two validation constraints were relaxed: the AzDevOpsProject class's SourceControlType property no longer enforces predefined values ('Git', 'Tfvc') through ValidateSet, and the Test-AzDevOpsPat function removes the length check requirement for PAT validation.

Changes

Cohort / File(s)Summary
Validation constraint relaxation
source/Classes/010.AzDevOpsProject.ps1, source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1
SourceControlType property ValidateSet attribute commented out, disabling enforcement of 'Git' and 'Tfvc' values. Test-AzDevOpsPat function length check (52 characters) removed from PAT validation logic.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'Fix DSC 3.0 for resources' is vague and generic, using non-descriptive terms that don't convey specific meaningful information about the actual changes (ValidateSet removal and PAT length check modification).Clarify the title to be more specific about the actual changes, such as 'Remove ValidateSet validation and PAT length check for DSC 3.0 compatibility' or reference the specific components being fixed.
Description check❓ InconclusiveThe PR description contains only the repository template and unchecked task checklist with no actual description of the changes, issues being fixed, or rationale for the modifications.Replace the template placeholders with a concrete description of what was changed and why, explain how these changes fix DSC 3.0 compatibility, and provide a CHANGELOG entry.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
`@source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1`:
- Line 39: Update the comment-based help for Test-AzDevOpsPat (in
Test-AzDevOpsPat.ps1) to state that the function only validates that the PAT is
non-empty/non-whitespace (not its length or format), and then update the test
definitions in CommonTestCases.psm1 (the PAT cases around the 222-233 block) to
treat any non-empty string as valid (remove the 52-character exact-length
restriction) so tests match the implementation; alternatively, if DSC 3.0
requires format validation, restore the length/format check inside
Test-AzDevOpsPat instead and keep the tests as-is—pick one of these two paths
and make the help, implementation (Test-AzDevOpsPat) and test data
(CommonTestCases.psm1) consistent.
🧹 Nitpick comments (3)
source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1 (1)

1-22: Consider completing comment-based help sections.

The comment-based help is missing .DESCRIPTION (should be 40+ chars per guidelines), .INPUTS, and .OUTPUTS sections. Since this is an existing file with a minor change, this can be addressed in a future PR.

source/AzureDevOpsDsc.psd1 (2)

5-5: Property naming inconsistency.

moduleVersion uses camelCase while other manifest properties use PascalCase (e.g., RootModule, CompanyName). Consider using ModuleVersion for consistency.

♻️ Suggested fix
- moduleVersion = '0.3.0'+ ModuleVersion = '0.3.0'

46-46: Extra blank line.

There are two consecutive blank lines between NestedModules and DscResourcesToExport. One blank line would be sufficient for separation.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@source/Classes/010.AzDevOpsProject.ps1`:
- Around line 39-41: Remove the commented-out ValidateSet line for the
SourceControlType property (the "[ValidateSet('Git', 'Tfvc')]" comment) and, if
you still need to enforce allowed values, implement runtime validation in the
class's AssertProperties() or NormalizeProperties() method: check that the
SourceControlType property is either "Git" or "Tfvc" and throw/normalize
accordingly. This keeps the property declaration clean and moves schema
enforcement to AssertProperties()/NormalizeProperties() as suggested.

Comment threadsource/Classes/010.AzDevOpsProject.ps1
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mimachniak
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix DSC 3.0 for resources - #45

Open
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops
Open

Fix DSC 3.0 for resources#45
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops

Conversation

@mimachniak

@mimachniakmimachniak commented Jan 19, 2026

Copy link
Copy Markdown

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

Task list

  • Added an entry to the change log under the Unreleased section of the
    file CHANGELOG.md. Entry should say what was changed and how that
    affects users (if applicable), and reference the issue being resolved
    (if applicable).
  • Resource documentation updated in the resource's README.md.
  • Resource parameter descriptions updated in schema.mof.
  • Comment-based help updated, including parameter descriptions.
  • Localization strings updated.
  • Examples updated.
  • Unit tests updated. See DSC Community Testing Guidelines.
  • Integration tests updated (where possible). See DSC Community Testing Guidelines.
  • Code changes adheres to DSC Community Style Guidelines.

This change is Reviewable

@coderabbitai

coderabbitaiBot commented Jan 19, 2026

Copy link
Copy Markdown

Walkthrough

Two validation constraints were relaxed: the AzDevOpsProject class's SourceControlType property no longer enforces predefined values ('Git', 'Tfvc') through ValidateSet, and the Test-AzDevOpsPat function removes the length check requirement for PAT validation.

Changes

Cohort / File(s)Summary
Validation constraint relaxation
source/Classes/010.AzDevOpsProject.ps1, source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1
SourceControlType property ValidateSet attribute commented out, disabling enforcement of 'Git' and 'Tfvc' values. Test-AzDevOpsPat function length check (52 characters) removed from PAT validation logic.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'Fix DSC 3.0 for resources' is vague and generic, using non-descriptive terms that don't convey specific meaningful information about the actual changes (ValidateSet removal and PAT length check modification).Clarify the title to be more specific about the actual changes, such as 'Remove ValidateSet validation and PAT length check for DSC 3.0 compatibility' or reference the specific components being fixed.
Description check❓ InconclusiveThe PR description contains only the repository template and unchecked task checklist with no actual description of the changes, issues being fixed, or rationale for the modifications.Replace the template placeholders with a concrete description of what was changed and why, explain how these changes fix DSC 3.0 compatibility, and provide a CHANGELOG entry.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
`@source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1`:
- Line 39: Update the comment-based help for Test-AzDevOpsPat (in
Test-AzDevOpsPat.ps1) to state that the function only validates that the PAT is
non-empty/non-whitespace (not its length or format), and then update the test
definitions in CommonTestCases.psm1 (the PAT cases around the 222-233 block) to
treat any non-empty string as valid (remove the 52-character exact-length
restriction) so tests match the implementation; alternatively, if DSC 3.0
requires format validation, restore the length/format check inside
Test-AzDevOpsPat instead and keep the tests as-is—pick one of these two paths
and make the help, implementation (Test-AzDevOpsPat) and test data
(CommonTestCases.psm1) consistent.
🧹 Nitpick comments (3)
source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1 (1)

1-22: Consider completing comment-based help sections.

The comment-based help is missing .DESCRIPTION (should be 40+ chars per guidelines), .INPUTS, and .OUTPUTS sections. Since this is an existing file with a minor change, this can be addressed in a future PR.

source/AzureDevOpsDsc.psd1 (2)

5-5: Property naming inconsistency.

moduleVersion uses camelCase while other manifest properties use PascalCase (e.g., RootModule, CompanyName). Consider using ModuleVersion for consistency.

♻️ Suggested fix
- moduleVersion = '0.3.0'+ ModuleVersion = '0.3.0'

46-46: Extra blank line.

There are two consecutive blank lines between NestedModules and DscResourcesToExport. One blank line would be sufficient for separation.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@source/Classes/010.AzDevOpsProject.ps1`:
- Around line 39-41: Remove the commented-out ValidateSet line for the
SourceControlType property (the "[ValidateSet('Git', 'Tfvc')]" comment) and, if
you still need to enforce allowed values, implement runtime validation in the
class's AssertProperties() or NormalizeProperties() method: check that the
SourceControlType property is either "Git" or "Tfvc" and throw/normalize
accordingly. This keeps the property declaration clean and moves schema
enforcement to AssertProperties()/NormalizeProperties() as suggested.

Comment threadsource/Classes/010.AzDevOpsProject.ps1
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mimachniak
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Fix DSC 3.0 for resources - #45

Open
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops
Open

Fix DSC 3.0 for resources#45
mimachniak wants to merge 3 commits into
dsccommunity:mainfrom
mimachniak:feature/add-new-class-for-devops

Conversation

@mimachniak

@mimachniakmimachniak commented Jan 19, 2026

Copy link
Copy Markdown

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

Task list

  • Added an entry to the change log under the Unreleased section of the
    file CHANGELOG.md. Entry should say what was changed and how that
    affects users (if applicable), and reference the issue being resolved
    (if applicable).
  • Resource documentation updated in the resource's README.md.
  • Resource parameter descriptions updated in schema.mof.
  • Comment-based help updated, including parameter descriptions.
  • Localization strings updated.
  • Examples updated.
  • Unit tests updated. See DSC Community Testing Guidelines.
  • Integration tests updated (where possible). See DSC Community Testing Guidelines.
  • Code changes adheres to DSC Community Style Guidelines.

This change is Reviewable

@coderabbitai

coderabbitaiBot commented Jan 19, 2026

Copy link
Copy Markdown

Walkthrough

Two validation constraints were relaxed: the AzDevOpsProject class's SourceControlType property no longer enforces predefined values ('Git', 'Tfvc') through ValidateSet, and the Test-AzDevOpsPat function removes the length check requirement for PAT validation.

Changes

Cohort / File(s)Summary
Validation constraint relaxation
source/Classes/010.AzDevOpsProject.ps1, source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1
SourceControlType property ValidateSet attribute commented out, disabling enforcement of 'Git' and 'Tfvc' values. Test-AzDevOpsPat function length check (52 characters) removed from PAT validation logic.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'Fix DSC 3.0 for resources' is vague and generic, using non-descriptive terms that don't convey specific meaningful information about the actual changes (ValidateSet removal and PAT length check modification).Clarify the title to be more specific about the actual changes, such as 'Remove ValidateSet validation and PAT length check for DSC 3.0 compatibility' or reference the specific components being fixed.
Description check❓ InconclusiveThe PR description contains only the repository template and unchecked task checklist with no actual description of the changes, issues being fixed, or rationale for the modifications.Replace the template placeholders with a concrete description of what was changed and why, explain how these changes fix DSC 3.0 compatibility, and provide a CHANGELOG entry.
✅ Passed checks (1 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
`@source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1`:
- Line 39: Update the comment-based help for Test-AzDevOpsPat (in
Test-AzDevOpsPat.ps1) to state that the function only validates that the PAT is
non-empty/non-whitespace (not its length or format), and then update the test
definitions in CommonTestCases.psm1 (the PAT cases around the 222-233 block) to
treat any non-empty string as valid (remove the 52-character exact-length
restriction) so tests match the implementation; alternatively, if DSC 3.0
requires format validation, restore the length/format check inside
Test-AzDevOpsPat instead and keep the tests as-is—pick one of these two paths
and make the help, implementation (Test-AzDevOpsPat) and test data
(CommonTestCases.psm1) consistent.
🧹 Nitpick comments (3)
source/Modules/AzureDevOpsDsc.Common/Resources/Functions/Private/Test-AzDevOpsPat.ps1 (1)

1-22: Consider completing comment-based help sections.

The comment-based help is missing .DESCRIPTION (should be 40+ chars per guidelines), .INPUTS, and .OUTPUTS sections. Since this is an existing file with a minor change, this can be addressed in a future PR.

source/AzureDevOpsDsc.psd1 (2)

5-5: Property naming inconsistency.

moduleVersion uses camelCase while other manifest properties use PascalCase (e.g., RootModule, CompanyName). Consider using ModuleVersion for consistency.

♻️ Suggested fix
- moduleVersion = '0.3.0'+ ModuleVersion = '0.3.0'

46-46: Extra blank line.

There are two consecutive blank lines between NestedModules and DscResourcesToExport. One blank line would be sufficient for separation.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@source/Classes/010.AzDevOpsProject.ps1`:
- Around line 39-41: Remove the commented-out ValidateSet line for the
SourceControlType property (the "[ValidateSet('Git', 'Tfvc')]" comment) and, if
you still need to enforce allowed values, implement runtime validation in the
class's AssertProperties() or NormalizeProperties() method: check that the
SourceControlType property is either "Git" or "Tfvc" and throw/normalize
accordingly. This keeps the property declaration clean and moves schema
enforcement to AssertProperties()/NormalizeProperties() as suggested.

Comment threadsource/Classes/010.AzDevOpsProject.ps1
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@mimachniak