-
Notifications
You must be signed in to change notification settings - Fork 0
AzDoGitPermission
Michael Zanatta edited this page Aug 18, 2026
·
4 revisions
AzDoGitPermission [string] #ResourceName
{
ProjectName = [String]$ProjectName
[ RepositoryName = [String]$RepositoryName ]
[ isInherited = [Boolean]$isInherited ]
[ Permissions = [HashTable[]]$Permissions ]
[ Ensure = [String] {'Present', 'Absent'} ]
}The RepositoryName property is optional. If it is not provided, the Git permissions will be applied at the project-level.
AzDoGitPermission/Permissions
{
Identity = [String]$Identity # Syntax
# SYNTAX: '[ProjectName | OrganizationName]\ServicePrincipalName, UserPrincipalName, UserDisplayName, GroupDisplayName'
# EXAMPLE: '[TestProject]\UserName@email.com'
# EXAMPLE: '[SampleOrganizationName]\Project Collection Administrators'
Permission = [Hashtable]$Permissions # See 'Permission List'
}AzDoGitPermission/Permissions/Permission
{
PermissionName|PermissionDisplayName = [String]$Name { 'Allow, Deny' }
}Either 'Name' or 'DisplayName' can be used, but we Strongly Recommend that you use 'Name' in your configuration.
| Name | DisplayName | Values | Note |
|---|---|---|---|
| Administer | Administer | [ allow, deny ] | Not recommended. |
| GenericRead | Read | [ allow, deny ] | |
| GenericContribute | Contribute | [ allow, deny ] | |
| ForcePush | Force push (rewrite history, delete branches and tags) | [ allow, deny ] | |
| CreateBranch | Create branch | [ allow, deny ] | |
| CreateTag | Create tag | [ allow, deny ] | |
| ManageNote | Manage notes | [ allow, deny ] | |
| PolicyExempt | Bypass policies when pushing | [ allow, deny ] | |
| CreateRepository | Create repository | [ allow, deny ] | |
| DeleteRepository | Delete or disable repository | [ allow, deny ] | |
| RenameRepository | Rename repository | [ allow, deny ] | |
| EditPolicies | Edit policies | [ allow, deny ] | |
| RemoveOthersLocks | Remove others' locks | [ allow, deny ] | |
| ManagePermissions | Manage permissions | [ allow, deny ] | |
| PullRequestContribute | Contribute to pull requests | [ allow, deny ] | |
| PullRequestBypassPolicy | Bypass policies when completing pull requests | [ allow, deny ] | |
| ViewAdvSecAlerts | Advanced Security: view alerts | [ allow, deny ] | |
| DismissAdvSecAlerts | Advanced Security: manage and dismiss alerts | [ allow, deny ] | |
| ManageAdvSecScanning | Advanced Security: manage settings | [ allow, deny ] |
- ProjectName: The name of the Azure DevOps project.
- RepositoryName: The name of the Git repository within the project.
- Permissions: A HashTable that specifies the permissions to be set. Refer to: 'Permissions Syntax'.
- Ensure: Specifies whether the Git repository permissions should be applied. Defaults to 'Present'.
This resource allows you to manage Git repository permissions in Azure DevOps using Desired State Configuration (DSC). It includes properties for specifying the project name, repository name, permission inheritance, and a list of permissions to apply to identities.
Configuration ExampleConfig {
Import-DscResource -ModuleName 'AzureDevOpsDscNative'
Node localhost {
AzDoGitPermission AddGitPermission {
Ensure = 'Present'
ProjectName = 'MyProject'
RepositoryName = 'MyRepository'
isInherited = $true
Permissions = @(
@{
Identity = '[MyProject]\Contributors'
Permission = @{
'GenericRead' = 'Allow'
'GenericContribute' = 'Allow'
}
}
)
}
}
}
Start-DscConfiguration -Path ./ExampleConfig -Wait -Verbose# Return the current configuration for AzDoGitPermission
$properties = @{
ProjectName = 'MyProject'
RepositoryName = 'MyRepository'
isInherited = $true
Permissions = @(
@{
Identity = '[MyProject]\Contributors'
Permission = @{
'GenericRead' = 'Allow'
}
}
)
}
Invoke-DscResource -Name 'AzDoGitPermission' -Method Get -Property $properties -ModuleName 'AzureDevOpsDscNative'parameters: {}
variables: {
ProjectName: MyProject,
RepositoryName: MyRepository
}
resources:
- name: Repository Contributors Permissions
type: AzureDevOpsDscNative/AzDoGitPermission
dependsOn:
- AzureDevOpsDscNative/AzDoGitRepository/MyRepository
properties:
ProjectName: $ProjectName
RepositoryName: $RepositoryName
isInherited: true
Permissions:
- Identity: '[$ProjectName]\Contributors'
Permission:
GenericRead: Allow
GenericContribute: Allow
Ensure: PresentLCM Initialization:
$params = @{
AzureDevopsOrganizationName = "SampleAzDoOrgName"
ConfigurationDirectory = "C:\Datum\DSCOutput\"
ConfigurationUrl = 'https://configuration-path'
JITToken = 'SampleJITToken'
Mode = 'Set'
AuthenticationType = 'ManagedIdentity'
ReportPath = 'C:\Datum\DSCOutput\Reports'
}
Invoke-AzDoLCM @params- Assert-BoundParameter
- Assert-ElevatedUser
- Assert-IPAddress
- Assert-Module
- AzDoAPI_0_ProjectCache
- AzDoAPI_1_GroupCache
- AzDoAPI_2_UserCache
- AzDoAPI_3_GroupMemberCache
- AzDoAPI_4_GitRepositoryCache
- AzDoAPI_5_PermissionsCache
- AzDoAPI_6_ServicePrinciple
- AzDoAPI_7_IdentitySubjectDescriptors
- AzDoAPI_8_ProjectProcessTemplates
- AzDoAPI_9_DevOpsClassificationNodes
- Compare-DscParameterState
- Compare-ResourcePropertyState
- ConvertFrom-DscResourceInstance
- ConvertTo-Base64String
- ConvertTo-CimInstance
- ConvertTo-HashTable
- Find-Certificate
- Format-Path
- Get-AzDevOpsOperation
- Get-AzDevOpsServicesApiUri
- Get-AzDevOpsServicesUri
- AzDoAgentPool
- AzDoAgentPoolPermission
- AzDoAgentQueue
- AzDoAreaNodes
- AzDoAreaPermission
- AzDoArtifactFeed
- AzDoArtifactFeedPermission
- AzDoArtifactFeedSettings
- AzDoArtifactFeedView
- AzDoAuditStream
- AzDoBranchPolicy
- AzDoCheckConfiguration
- AzDoDeploymentGroup
- AzDoEnvironmentApproval
- AzDoEnvironmentPermission
- AzDoExtension
- AzDoGitPermission
- AzDoGitRepository
- AzDoGroupMember
- AzDoGroupPermission
- AzDoIterationNodes
- AzDoIterationPermission
- AzDoNotificationSubscription
- AzDoOrganizationGroup
- AzDoOrganizationSettings
- AzDoPipeline
- AzDoPipelineEnvironment
- AzDoPipelinePermission
- AzDoPipelineSettings
- AzDoProcess
- AzDoProcessPermission
- AzDoProject
- AzDoProjectGroup
- AzDoProjectPermission
- AzDoProjectServices
- AzDoRepositorySettings
- AzDoSecurityNamespacePermission
- AzDoServiceConnection
- AzDoServiceConnectionPermission
- AzDoServiceHook
- AzDoTaskGroup
- AzDoTeam
- AzDoTeamMember
- AzDoTeamSettings
- AzDoUserEntitlement
- AzDoVariableGroup
- AzDoVariableGroupPermission
- AzDoWiki
- AzDoWIPTags