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   = 'preview5'

            # 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-preview5] - 2026-08-27
 
### 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).
- 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
    split into `validate`, `integration-tests` and `publish` jobs, where
    `publish` depends on `integration-tests`; the integration job calls
    `integration-tests.yml` as a reusable workflow (rather than duplicating it)
    and builds the exact version being released. No GitHub Release and no
    PowerShell Gallery package is produced unless every integration test passes.
    The integration job runs as an ordinary Actions job on the self-hosted
    `AZDO-AGENT` runner - it does not use a GitHub Environment, so there is no
    deployment record or manual approval gate, and `AZURE_DEVOPS_PAT` and
    `AzureDevOpsOrg` must be repository-level rather than Environment-scoped.
  - Reworked the release process so that a released version has exactly one
    source of truth - the git tag. `publish.yml` now also verifies the tag is
    contained in `main` before releasing, accepts prerelease tags of the form
    `vX.Y.Z-preview0001`, and runs the `docs` tasks during packaging so the
    published package ships conceptual help. The `moduleVersion` in the module
    manifest and `next-version` in `GitVersion.yml` are documented as build
    fallbacks and brought into agreement with each other.
  - Added a changelog roll-over step to `publish.yml`
    (`Create_ChangeLog_GitHub_PR`), so a release converts the `[Unreleased]`
    section into a versioned one instead of carrying its entries into the next
    release.
  - Moved `Publish_GitHub_Wiki_Content` out of the `publish` task chain in
    `build.yaml` and into a separate non-blocking step, so a wiki failure can no
    longer fail a release whose Gallery package has already been published.
  - Added a `docs` step to `build.yml` so documentation generation is exercised
    on every push and pull request rather than for the first time during a
    release.
  - Documented the full release procedure and required repository secrets in
    `CONTRIBUTING.md`, and corrected the `Releases` section of `README.md`,
    which described an automatic preview release on every merge to `main` that
    this fork''s workflows never performed.
- AzureDevOpsDsc
  - Enabled integration tests against https://dev.azure.com/azuredevopsdsc/ (see
    comment https://github.com/dsccommunity/AzureDevOpsDsc/issues/9#issuecomment-766375424
    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'


        } # End of PSData hashtable

    } # End of PrivateData hashtable
}