AzureDevOpsDscNative.psd1
|
@{ RootModule = 'AzureDevOpsDscNative.psm1' # Version number of this module. # # This value is a fallback for local and CI builds only. Released versions are # driven by the git tag: the publish workflow sets $env:ModuleVersion from the # tag, and the build stamps that value into the packaged manifest instead of this # one. Do not hand-edit this to cut a release - push a vX.Y.Z tag. moduleVersion = '1.0.0' # ID used to uniquely identify this module GUID = 'e7eb078e-5e97-42be-ae8f-decb140fc38e' # Author of this module Author = 'ZanattaMichael' # Company or vendor of this module CompanyName = 'ZanattaMichael' # Copyright statement for this module Copyright = 'Copyright the DSC Community contributors and ZanattaMichael. All rights reserved.' # Description of the functionality provided by this module Description = 'A fork of the DSC Community AzureDevOpsDsc module with native DSC v3 support: every resource is discoverable and invokable by dsc.exe via the Microsoft.Adapter/PowerShell adapter, using generated adapted resource manifests, without requiring a wrapper resource.' # Minimum version of the Windows PowerShell engine required by this module PowerShellVersion = '7.0' # Minimum version of the common language runtime (CLR) required by this module CLRVersion = '4.0' # Functions to export from this module #FunctionsToExport = @() # Cmdlets to export from this module #CmdletsToExport = @() # Variables to export from this module VariablesToExport = @() # Aliases to export from this module AliasesToExport = @() # Import all the 'DSCClassResource', modules as part of this module NestedModules = @() DscResourcesToExport = @('AzDoGroupPermission','AzDoOrganizationGroup','AzDoProject','AzDoProjectServices','AzDoProjectGroup','AzDoGroupMember','AzDoGitRepository','AzDoGitPermission','AzDoAreaPermission','AzDoIterationPermission','AzDoWIPTags','AzDoAreaNodes','AzDoIterationNodes','AzDoBranchPolicy','AzDoVariableGroup','AzDoServiceConnection','AzDoPipelineEnvironment','AzDoAgentPool','AzDoAgentQueue','AzDoTeam','AzDoTeamMember','AzDoPipeline','AzDoPipelinePermission','AzDoEnvironmentApproval','AzDoVariableGroupPermission','AzDoServiceConnectionPermission','AzDoAgentPoolPermission','AzDoSecurityNamespacePermission','AzDoArtifactFeed','AzDoArtifactFeedPermission','AzDoDeploymentGroup','AzDoTaskGroup','AzDoOrganizationSettings','AzDoExtension','AzDoAuditStream','AzDoProjectPermission','AzDoEnvironmentPermission','AzDoWiki','AzDoNotificationSubscription','AzDoRepositorySettings','AzDoCheckConfiguration','AzDoTeamSettings','AzDoArtifactFeedSettings','AzDoArtifactFeedView','AzDoProcess','AzDoProcessPermission','AzDoUserEntitlement','AzDoServiceHook','AzDoPipelineSettings') RequiredAssemblies = @() # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. PrivateData = @{ PSData = @{ # Set to a prerelease string value if the release should be a prerelease. Prerelease = 'preview6' # Tags applied to this module. These help with module discovery in online galleries. Tags = @('DesiredStateConfiguration', 'DSC', 'DSCResourceKit', 'DSCResource', 'DSCv3', 'AzureDevOps') # A URL to the license for this module. LicenseUri = 'https://github.com/ZanattaMichael/AzureDevOpsDsc/blob/main/LICENSE' # A URL to the main website for this project. ProjectUri = 'https://github.com/ZanattaMichael/AzureDevOpsDsc' # A URL to an icon representing this module. IconUri = 'https://dsccommunity.org/images/DSC_Logo_300p.png' # ReleaseNotes of this module. # Per-release notes are generated from the CHANGELOG's [Unreleased] section # at build time and attached to the GitHub Release. This link is the fallback # shown on the Gallery listing. ReleaseNotes = '## [1.0.0-preview6] - 2026-09-04 ### Changed - AzureDevOpsDscNative - Updated the `Dsc.PipelineRunner` documentation in `USAGE.md` and the "Pipeline runner initialization" example in every resource doc under `source/Examples/Resources` (published to the GitHub wiki on release) to match the latest `Dsc.PipelineRunner` release: `Invoke-AzDoLCM` is now `Invoke-DscPipelineRunner` (an Azure DevOps back-compat shim) or, for new integrations, the provider-agnostic `Invoke-DscRunner`. The `ConfigurationDirectory` and `ConfigurationUrl` parameters were renamed to `exportConfigDir` and `ConfigurationSourcePath`, and the cache directory environment variable is now `PIPELINERUNNER_CACHE_DIRECTORY` (with `AZDODSC_CACHE_DIRECTORY` retained as a back-compat alias). - The integration-test release gate now differentiates between a full release and a prerelease. A full release tag (`vX.Y.Z`) still requires every integration test to pass; a prerelease tag (`vX.Y.Z-<suffix>`) passes `allowFailures=true` to the integration workflow, so individual test failures are logged as warnings but the release still proceeds - preview builds can ship despite flaky or in-progress tests. Setup and infrastructure failures (Pester missing, module not resolving, no test result at all) still fail the gate in both modes, so a broken environment cannot silently pass. Implemented by an `-AllowFailures` switch on `Invoke-Tests.ps1` and an `allowFailures` input on `integration-tests.yml` that `publish.yml` sets from the tag. ### Added - AzureDevOpsDscNative - Added a `/run-azuredevopsdscnative` skill (`.claude/skills/run-azuredevopsdscnative/`) with a self-contained driver script for running the Common unit suite headless on Linux from a clean container. Installs PowerShell 7 if missing, side-loads Pester 5.7.1 from `api.nuget.org` when PowerShell Gallery is unreachable, runs the bootstrap, and exits non-zero on test failure. Does not run the Classes suite (needs a built module) or the build (needs PSGallery-hosted Sampler/ModuleBuilder) or integration tests (need the self-hosted runner and a live org). - Added a DSC v3 integration test suite under `tests/Integration/V3/`, run by `Invoke-V3Tests.ps1` alongside the existing v2 suite on the self-hosted runner. It exercises `AzDoProject`, `AzDoGitRepository` and `AzDoProjectGroup` end to end through the `dsc` CLI and the PowerShell adapter, rather than through `Invoke-DscResource`, so the DSC v3 path is covered by CI. The adapter type is resolved at runtime - `Microsoft.Adapter/PowerShell` on DSC 3.2.0 and later, falling back to the deprecated `Microsoft.DSC/PowerShell` on an older CLI - and can be pinned with the `DSC_V3_ADAPTER` environment variable. The runner reports pass/fail counts and exits non-zero on failure, and honours the same `-AllowFailures` switch as the v2 runner, so a prerelease is not blocked by an in-progress v3 test. - Added `.github/workflows/integration-tests-v3.yml`, a standalone workflow for the DSC v3 suite. It is kept separate from `integration-tests.yml` deliberately: the v2 suite takes the better part of an hour, so running v3 inside it means waiting v2 out to learn anything about v3. Split, the two can be dispatched, gated and re-run independently, and since both target the same self-hosted runner they queue rather than contend. The workflow builds the module, pins `PSModulePath` to that single build, installs the `dsc` CLI, runs `Invoke-V3Tests.ps1` and uploads `v3-integration-test-results.xml`. `publish.yml` calls it as a second release gate beside the v2 gate, with the same prerelease `allowFailures` rule, so a release still gates on both suites. - Added `tests/Integration/V3/Manifests/DscV3Manifests.tests.ps1`, covering the DSC v3 adapted resource manifests that `build.ps1 -Tasks dscv3` generates. Nothing was checking them, and their failure mode is silent: `DscResource.Authoring` derives each property''s JSON schema type from the AST type name, which yields `System.Boolean` for this module''s convention rather than the `bool` its type map expects, so the property quietly falls back to `"string"`. `Fix_DscAdaptedResourceManifestTypes` repairs that after generation - 25 of the 49 manifests need it - but if that task stops running or stops matching, every boolean and numeric property becomes a string again and the build still goes green. The suite asserts a manifest exists for every `[DscResource()]` class, that each declares the right type and the built module version, that every property''s schema type matches the type its class declares, that no configurable `[DscProperty()]` is missing, that the combined manifest list agrees with the individual files (they are generated and patched separately, so they can drift), and that the `dsc` CLI can actually discover the resources through the adapter. Class shapes are read from the built module''s AST, including inherited properties, so the checks do not need a DSC host able to load the module. - AzureDevOpsDsc - Added DSC v3 support: all 49 class-based DSC resources now declare `Set()` and `Test()` directly (delegating to `AzDevOpsDscResourceBase`) instead of relying on pure inheritance, so both the `Microsoft.Adapter/PowerShell` runtime adapter and `DscResource.Authoring`''s manifest generator correctly detect `get`/`set`/`test` capabilities instead of only `get`. - Added a `dscv3` build workflow (`Create_DscAdaptedResourceManifests`, `Create_DscResourceManifestsList` from `DscResource.Authoring`) that generates DSC v3 adapted resource manifests for every resource into the built module output, and wired it into `pack`. - Renamed the module from `AzureDevOpsDsc` to `AzureDevOpsDscNative` for publishing under this fork, since PowerShell Gallery names are globally unique and this repo doesn''t own the existing `AzureDevOpsDsc` listing. - Added GitHub Actions workflows: `build.yml` (build + generate DSC v3 manifests as CI artifacts on every push/PR), `unit-tests.yml` (runs the Classes and Common unit test suites), and `publish.yml` (tag-triggered release: builds, re-runs both test suites as a release gate, packages the module, and publishes a GitHub Release plus - once a Gallery API key is configured - PowerShell Gallery). - Updated pipeline files to support change of default branch to main. - Added GitHub issue templates and pull request template ([issue #1](https://github.com/dsccommunity/AzureDevOpsDsc/issues/1)) - Added the `AzDevOpsProject`, DSC Resource - Fixed non-terminating, integration tests ([issue #18](https://github.com/dsccommunity/AzureDevOpsDsc/issues/18)) - Increased Azure DevOps, API timeout to 5 minutes to allow for busy/slow API operations ([issue #25](https://github.com/dsccommunity/AzureDevOpsDsc/issues/25)). - Updated contextual help ([issue #5](https://github.com/dsccommunity/AzureDevOpsDsc/issues/5)). - Removed `Classes` directory from being output in packaged module ([issue #10](https://github.com/dsccommunity/AzureDevOpsDsc/issues/10)). - Removed `Examples` directory from being output in packaged module ([issue #11](https://github.com/dsccommunity/AzureDevOpsDsc/issues/11)). - Moved ''Ensure'' and ''RequiredAction'' enums into ''Enum'' directory and out of ''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 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 - AzureDevOpsDscNative - Made the integration test suite a hard release gate. `publish.yml` is now ' } # End of PSData hashtable } # End of PrivateData hashtable } |