rules/AzureDevOps.Organization.GeneralOverview.Rule.ps1
|
# Azure DevOps organization General Overview settings rules # Synopsis: Organization description should be set Rule 'Azure.DevOps.Organization.GeneralOverview.DescriptionSet' ` -Ref 'ADO-OGO-001' ` -Type 'Azure.DevOps.Organization.GeneralOverview' ` -Tag @{ release = 'GA' } ` -Level Warning { # Description: Setting an organization description helps provide context and clarity for the organization's purpose. Reason 'The organization description is not set.' Recommend 'Set a meaningful description in Azure DevOps organization settings.' # Links: https://learn.microsoft.com/en-us/azure/devops/organizations/settings/organization-overview?view=azure-devops $Assert.HasField($TargetObject, "description", $true) $Assert.HasFieldValue($TargetObject, "description", "Not Set") -eq $false } # Synopsis: The target should satisfy its applicable organizational policy Rule 'Azure.DevOps.Organization.GeneralOverview.TimeZoneSet' ` -Ref 'ADO-OGO-002' ` -Type 'Azure.DevOps.Organization.GeneralOverview' ` -If { (Get-AzDevOpsPolicyAssessment -TargetObject $TargetObject -RuleId 'Azure.DevOps.Organization.GeneralOverview.TimeZoneSet' -Policy $Configuration.assessmentPolicies.'Azure.DevOps.Organization.GeneralOverview.TimeZoneSet').Outcome -in @('Pass', 'Fail') } ` -Tag @{ release = 'GA'; assessment = 'Policy' } ` -Level Error { $assessment = Get-AzDevOpsPolicyAssessment -TargetObject $TargetObject -RuleId 'Azure.DevOps.Organization.GeneralOverview.TimeZoneSet' -Policy $Configuration.assessmentPolicies.'Azure.DevOps.Organization.GeneralOverview.TimeZoneSet' Reason $assessment.ReasonCode Recommend 'Apply the referenced organizational policy or collect the missing evidence.' $Assert.HasFieldValue($assessment, 'Outcome', 'Pass') } # Synopsis: The target should satisfy its applicable organizational policy Rule 'Azure.DevOps.Organization.GeneralOverview.GeographySet' ` -Ref 'ADO-OGO-003' ` -Type 'Azure.DevOps.Organization.GeneralOverview' ` -If { (Get-AzDevOpsPolicyAssessment -TargetObject $TargetObject -RuleId 'Azure.DevOps.Organization.GeneralOverview.GeographySet' -Policy $Configuration.assessmentPolicies.'Azure.DevOps.Organization.GeneralOverview.GeographySet').Outcome -in @('Pass', 'Fail') } ` -Tag @{ release = 'GA'; assessment = 'Policy' } ` -Level Error { $assessment = Get-AzDevOpsPolicyAssessment -TargetObject $TargetObject -RuleId 'Azure.DevOps.Organization.GeneralOverview.GeographySet' -Policy $Configuration.assessmentPolicies.'Azure.DevOps.Organization.GeneralOverview.GeographySet' Reason $assessment.ReasonCode Recommend 'Apply the referenced organizational policy or collect the missing evidence.' $Assert.HasFieldValue($assessment, 'Outcome', 'Pass') } # Synopsis: Organization owner should be set Rule 'Azure.DevOps.Organization.GeneralOverview.OwnerSet' ` -Ref 'ADO-OGO-004' ` -Type 'Azure.DevOps.Organization.GeneralOverview' ` -Tag @{ release = 'GA' } ` -Level Error { # Description: Setting the organization owner ensures accountability and proper management of the organization. Reason 'The organization owner is not set.' Recommend 'Set an owner in Azure DevOps organization settings.' # Links: https://learn.microsoft.com/en-us/azure/devops/organizations/settings/organization-overview?view=azure-devops $Assert.HasField($TargetObject, "owner", $true) $Assert.HasFieldValue($TargetObject, "owner") } |