Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
dbc4607
adding docker support (#1)
ZanattaMichael Jan 17, 2024
afecb3e
BREAKING CHANGE - CORE 'Add Azure DevOps Managed Identity Support' (#2)
ZanattaMichael Jan 29, 2024
783df57
Resource Refactor and Update (#3)
ZanattaMichael Oct 20, 2024
ee754e8
Align Code-Base with DSC Coding Standards (#4)
ZanattaMichael Oct 21, 2024
ef092a1
Unit testing rework (#5)
ZanattaMichael Nov 3, 2024
5f3d038
DeCoupling Logging File Path to Enviroment Variable (#6)
ZanattaMichael Nov 24, 2024
c4e2c1d
Code Review Updates (#8)
ZanattaMichael Jan 8, 2025
799b78e
Add Area/Iteration Nodes, Permissions, and WIP Tags resources (#14)
ZanattaMichael May 19, 2026
ad8f0ba
docs: Add comprehensive resource documentation and examples (#16)
ZanattaMichael May 21, 2026
fa17294
refactor: Modernize bootstrap and build scripts with enhanced depende…
ZanattaMichael May 22, 2026
5b588b7
Add 28 new DSC resources, fix all unit tests, harden API/null handlin…
ZanattaMichael Jun 17, 2026
81a7594
Add AzDoUserEntitlement, AzDoServiceHook and AzDoPipelineSettings res…
ZanattaMichael Jun 20, 2026
9a7b6b2
Add AzDoProcess and AzDoProcessPermission resources (+ docs) (#22)
ZanattaMichael Jun 20, 2026
856411e
Update gitignore file.
Jun 22, 2026
e4b7b4e
Merge branch 'main' of https://github.com/ZanattaMichael/AzureDevOpsDsc
Jun 22, 2026
02d199b
Fix AzDoArtifactFeed: support organization-scoped feeds (ProjectName …
ZanattaMichael Jun 30, 2026
e00ec94
Fix AzDoArtifactFeed: support organization-scoped feeds (ProjectName …
ZanattaMichael Jun 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
30 changes: 30 additions & 0 deletions .build/tasks/1.PreLoad.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
task PreLoad {

# Write a script to check the PSModule Path and add the output/
# folder to the PSModule Path

# Get the output directory
$RepositoryRoot = Split-Path -Path (Split-Path -Path $PSScriptRoot -Parent) -Parent
$outputDir = Join-Path -Path $RepositoryRoot -ChildPath 'output'
$supportingModules = Join-Path -Path $RepositoryRoot -ChildPath 'output/AzureDevOpsDsc/0.0.1/Modules'

# Test if the output and supporting modules directories exist in the PSModulePath
if (-not $IsWindows) {
$modulelist = ($env:PSModulePath -split ":")
$delimiter = ":"
} else {
$modulelist = ($env:PSModulePath -split ";")
$delimiter = ";"
}

# Check if the output directory is in the moduleList
if ($moduleList -notcontains $outputDir) {
$env:PSModulePath = "{0}{1}{2}" -f $env:PSModulePath, $delimiter, $outputDir
Write-Host "Adding $outputDir to PSModulePath"
}
if ($moduleList -notcontains $supportingModules) {
$env:PSModulePath = "{0}{1}{2}" -f $env:PSModulePath, $delimiter, $supportingModules
Write-Host "Adding $supportingModules to PSModulePath"
}

}
39 changes: 39 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/powershell
{
"name": "PowerShell",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/powershell:lts-debian-11",
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": "true",
"username": "vscode",
"upgradePackages": "false",
"nonFreePackages": "true"
}
},

"postCreateCommand": "sudo chsh vscode -s \"$(which pwsh)\"",

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.defaultProfile.linux": "pwsh"
},

// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-vscode.powershell"
]
}
}

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
*.jpg binary
*.xl* binary
*.pfx binary
coverage.xml
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
output/
.devcontainer/
internal-tests/
LCM/Datum/*

**.bak
*.local.*
!**/README.md
.kitchen/

*.clixml
*.suo
*.user
*.coverage
coverage.xml
.vs
.psproj
.sln
Expand All @@ -16,3 +21,9 @@ node_modules
package-lock.json

CodeCoverage.JaCoCo.xml
.vscode/launch.json
Temp/*
TestProject.yml
TestProject2.yml
settings.json
coverage.xml
7 changes: 1 addition & 6 deletions .markdownlint.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,7 @@
"MD029": {
"style": "one"
},
"MD013": {
"line_length": 80,
"headers": false,
"code_blocks":false,
"tables": false
},
"MD013": true,
"MD024": false,
"MD034": false,
"no-hard-tabs": true
Expand Down
103 changes: 66 additions & 37 deletions .vscode/analyzersettings.psd1
Original file line number Diff line number Diff line change
@@ -1,44 +1,73 @@
@{
CustomRulePath = '.\output\RequiredModules\DscResource.AnalyzerRules'
CustomRulePath = @(
'.\output\RequiredModules\DscResource.AnalyzerRules'
'.\output\RequiredModules\Indented.ScriptAnalyzerRules'
)
includeDefaultRules = $true
IncludeRules = @(
# DSC Resource Kit style guideline rules.
'PSAvoidDefaultValueForMandatoryParameter',
'PSAvoidDefaultValueSwitchParameter',
'PSAvoidInvokingEmptyMembers',
'PSAvoidNullOrEmptyHelpMessageAttribute',
'PSAvoidUsingCmdletAliases',
'PSAvoidUsingComputerNameHardcoded',
'PSAvoidUsingDeprecatedManifestFields',
'PSAvoidUsingEmptyCatchBlock',
'PSAvoidUsingInvokeExpression',
'PSAvoidUsingPositionalParameters',
'PSAvoidShouldContinueWithoutForce',
'PSAvoidUsingWMICmdlet',
'PSAvoidUsingWriteHost',
'PSDSCReturnCorrectTypesForDSCFunctions',
'PSDSCStandardDSCFunctionsInResource',
'PSDSCUseIdenticalMandatoryParametersForDSC',
'PSDSCUseIdenticalParametersForDSC',
'PSMisleadingBacktick',
'PSMissingModuleManifestField',
'PSPossibleIncorrectComparisonWithNull',
'PSProvideCommentHelp',
'PSReservedCmdletChar',
'PSReservedParams',
'PSUseApprovedVerbs',
'PSUseCmdletCorrectly',
'PSUseOutputTypeCorrectly',
'PSAvoidGlobalVars',
'PSAvoidUsingConvertToSecureStringWithPlainText',
'PSAvoidUsingPlainTextForPassword',
'PSAvoidUsingUsernameAndPasswordParams',
'PSDSCUseVerboseMessageInDSCResource',
'PSShouldProcess',
'PSUseDeclaredVarsMoreThanAssignments',
'PSUsePSCredentialType',
IncludeRules = @(
# DSC Community style guideline rules from the module ScriptAnalyzer.
'PSAvoidDefaultValueForMandatoryParameter'
'PSAvoidDefaultValueSwitchParameter'
'PSAvoidInvokingEmptyMembers'
'PSAvoidNullOrEmptyHelpMessageAttribute'
'PSAvoidUsingCmdletAliases'
'PSAvoidUsingComputerNameHardcoded'
'PSAvoidUsingDeprecatedManifestFields'
'PSAvoidUsingEmptyCatchBlock'
'PSAvoidUsingInvokeExpression'
'PSAvoidUsingPositionalParameters'
'PSAvoidShouldContinueWithoutForce'
'PSAvoidUsingWMICmdlet'
'PSAvoidUsingWriteHost'
'PSDSCReturnCorrectTypesForDSCFunctions'
'PSDSCStandardDSCFunctionsInResource'
'PSDSCUseIdenticalMandatoryParametersForDSC'
'PSDSCUseIdenticalParametersForDSC'
'PSMisleadingBacktick'
'PSMissingModuleManifestField'
'PSPossibleIncorrectComparisonWithNull'
'PSProvideCommentHelp'
'PSReservedCmdletChar'
'PSReservedParams'
'PSUseApprovedVerbs'
'PSUseCmdletCorrectly'
'PSUseOutputTypeCorrectly'
'PSAvoidGlobalVars'
'PSAvoidUsingConvertToSecureStringWithPlainText'
'PSAvoidUsingPlainTextForPassword'
'PSAvoidUsingUsernameAndPasswordParams'
'PSDSCUseVerboseMessageInDSCResource'
'PSShouldProcess'
'PSUseDeclaredVarsMoreThanAssignments'
'PSUsePSCredentialType'

# Additional rules from the module ScriptAnalyzer
'PSUseConsistentWhitespace'
'UseCorrectCasing'
'PSPlaceOpenBrace'
'PSPlaceCloseBrace'
'AlignAssignmentStatement'
'AvoidUsingDoubleQuotesForConstantString'
'UseShouldProcessForStateChangingFunctions'

# Rules from the modules DscResource.AnalyzerRules
'Measure-*'

# Rules from the module Indented.ScriptAnalyzerRules
'AvoidCreatingObjectsFromAnEmptyString'
'AvoidDashCharacters'
'AvoidEmptyNamedBlocks'
'AvoidFilter'
'AvoidHelpMessage'
'AvoidNestedFunctions'
'AvoidNewObjectToCreatePSObject'
'AvoidParameterAttributeDefaultValues'
'AvoidProcessWithoutPipeline'
'AvoidSmartQuotes'
'AvoidThrowOutsideOfTry'
'AvoidWriteErrorStop'
'AvoidWriteOutput'
'UseSyntacticallyCorrectExamples'
)

}
12 changes: 12 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"recommendations": [
"streetsidesoftware.code-spell-checker",
"usernamehw.errorlens",
"davidanson.vscode-markdownlint",
"pspester.pester-test",
"ms-vscode.powershell",
"redhat.vscode-yaml",
"gruntfuggly.todo-tree",
"codecov.codecov"
]
}
19 changes: 18 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,13 @@
"files.insertFinalNewline": true,
"powershell.scriptAnalysis.settingsPath": ".vscode\\analyzersettings.psd1",
"powershell.scriptAnalysis.enable": true,
"files.trimFinalNewlines": true,
"files.associations": {
"*.ps1xml": "xml"
},
"cSpell.dictionaries": [
"powershell"
],
"cSpell.words": [
"COMPANYNAME",
"ICONURI",
Expand All @@ -32,8 +36,21 @@
"pscmdlet",
"steppable"
],
"cSpell.ignorePaths": [
".git"
],
"[markdown]": {
"files.trimTrailingWhitespace": false,
"files.encoding": "utf8"
}
},
"powershell.pester.useLegacyCodeLens": false,
"pester.testFilePath": [
"[tT]ests/[qQ][aA]/*.[tT]ests.[pP][sS]1",
"[tT]ests/[uU]nit/**/*.[tT]ests.[pP][sS]1",
"[tT]ests/[uU]nit/*.[tT]ests.[pP][sS]1"
],
"pester.runTestsInNewProcess": true,
"pester.pesterModulePath": "./output/RequiredModules/Pester",
"powershell.pester.codeLens": true,
"pester.suppressCodeLensNotice": true,
}
84 changes: 82 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,68 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
'prefix.ps1' ([issue #12](https://github.com/dsccommunity/AzureDevOpsDsc/issues/12)).
- Added pipeline support for publish markdown content to the GitHub repository
wiki ([issue #15](https://github.com/dsccommunity/AzureDevOpsDsc/issues/15)).
This will publish the markdown documentation that is generated bu the
build pipeline.
This will publish the markdown documentation that is generated by the build pipeline.
- Added new source folder `WikiSource`. Every markdown file in the folder
`WikiSource` will be published to the GitHub repository wiki. The markdown
file `Home.md` will be updated with the correct module version on each
publish to gallery (including preview).
- CodeCov integration.
- Added Resources:
- AzDoGroupPermission
- AzDoOrganizationGroup
- AzDoProjectGroup
- AzDoGroupMember
- AzDoGitRepository
- AzDoGitPermission
- AzDoTeamSettings
- AzDoArtifactFeedSettings
- AzDoArtifactFeedView
- AzDoProcess
- AzDoProcessPermission
- AzDoAgentPool
- AzDoAgentPoolPermission
- AzDoAgentQueue
- AzDoAreaNodes
- AzDoAreaPermission
- AzDoArtifactFeed
- AzDoArtifactFeedPermission
- AzDoAuditStream
- AzDoBranchPolicy
- AzDoCheckConfiguration
- AzDoDeploymentGroup
- AzDoEnvironmentApproval
- AzDoEnvironmentPermission
- AzDoExtension
- AzDoIterationNodes
- AzDoIterationPermission
- AzDoNotificationSubscription
- AzDoOrganizationSettings
- AzDoPipeline
- AzDoPipelineEnvironment
- AzDoPipelinePermission
- AzDoProject
- AzDoProjectPermission
- AzDoProjectServices
- AzDoRepositorySettings
- AzDoSecurityNamespacePermission
- AzDoServiceConnection
- AzDoServiceConnectionPermission
- AzDoTaskGroup
- AzDoTeam
- AzDoTeamMember
- AzDoVariableGroup
- AzDoVariableGroupPermission
- AzDoWIPTags
- AzDoWiki
- AzDoUserEntitlement
- AzDoServiceHook
- AzDoPipelineSettings
- AzureDevOpsDsc.Common
- Added New-AzDoAuthenticationProvider. This is invoked prior to the resource invocation.
- Added 'wrapper' functionality around the [Azure DevOps REST API](https://docs.microsoft.com/en-us/rest/api/azure/devops/)
- Added Supporting Functions for Azure Managed Identity.
- Added Unit Testing to AzureDevOpsDsc.Common


### Changed

Expand All @@ -39,12 +93,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
for more information).
- Updated pipeline file `RequiredModules.ps1` to latest pipeline pattern.
- Updated pipeline file `build.yaml` to latest pipeline pattern.
- Updated pipeline file `azure-pipelines.yml` to use correct images (hosted runners)
and correct task for artifacts.
- Enhanced Authentication Mechanisms.
The classes have been refactored to accommodate a variety of authentication methods.
This refactoring allows the system to support multiple authentication
protocols, enhancing security and providing flexibility in integrating with
different identity providers.
- Added LookupResult Property to classes. A new property, LookupResult,
has been introduced to the classes. This addition enables the classes to
efficiently store and retrieve lookup results, improving data handling
capabilities and streamlining processes that depend on quick access
to these results.
- Added [DSCGetSummaryState] class. : Introduced an additional class,
[DSCGetSummaryState], which serves to represent the changes that have been detected.
- The Get() and Test() methods have undergone a redesign.
The Get-* commands now efficiently retrieve and identify complex changes,
which are then depicted within the [DSCGetSummaryState] class.
- AzDevOpsProject
- Added a validate set to the parameter `SourceControlType` to (for now)
limit the parameter to the values `Git` and `Tfvc`.
- Update comment-based help to remove text which the valid values are
since that is now add automatically to the documentation (conceptual
help and wiki documentation).
- Update build.yaml tests reference:
- Added: ./azuredevopsdsc.common.tests.ps1
- Added: ./azuredevopsdsc.tests.ps1
- Repository Updates
- Update repository files to latest versions.
- Resolve-Dependency
- build.yml
- Sampler files
- azure-pipelines

### Fixed

Expand Down
Loading