Public/GitCredentials.ps1
Function Get-DatabricksGitCredential { <# .SYNOPSIS Returns the calling user's Git credentials. One credential per user is supported. .DESCRIPTION Returns the calling user's Git credentials. One credential per user is supported. Official API Documentation: https://docs.databricks.com/dev-tools/api/latest/gitcredentials.html#operation/get-git-credential-list .EXAMPLE #AUTOMATED_TEST:List Git Credentials Get-DatabricksGitCredential .EXAMPLE Get-DatabricksGitCredential -CredentialID 1103348908666947 #> [CmdletBinding()] param ( [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [Alias("credential_id")] [string] $CredentialID ) begin { $requestMethod = "GET" $apiEndpoint = "/2.0/git-credentials" } process { if ($CredentialID) { Write-Verbose "CredentialID specified ($CredentialID) - using get endpoint instead of list endpoint..." $apiEndpoint = "/2.0/git-credentials/$CredentialID" } Write-Verbose "Building Body/Parameters for final API call ..." #Set parameters $parameters = @{} $result = Invoke-DatabricksApiRequest -Method $requestMethod -EndPoint $apiEndpoint -Body $parameters if ($ClusterID) { return $result } else { return $result.credentials } } } Function Add-DatabricksGitCredential { <# .SYNOPSIS Creates a Git credential entry for the user. Only one Git credential per user is supported, so any attempts to create credentials if an entry already exists will fail. Use the PATCH endpoint to update existing credentials, or the DELETE endpoint to delete existing credentials. .DESCRIPTION Creates a Git credential entry for the user. Only one Git credential per user is supported, so any attempts to create credentials if an entry already exists will fail. Use the PATCH endpoint to update existing credentials, or the DELETE endpoint to delete existing credentials. Official API Documentation: https://docs.databricks.com/dev-tools/api/latest/gitcredentials.html#operation/create-git-credential .PARAMETER GitProvider Git provider. This field is case-insensitive. The available Git providers are awsCodeCommit, azureDevOpsServices, bitbucketCloud, bitbucketServer, gitHub, gitHubEnterprise, gitLab, and gitLabEnterpriseEdition. .PARAMETER GitUsername Git username. .PARAMETER PersonalAccessToken The personal access token used to authenticate to the corresponding Git provider. .EXAMPLE Add-DatabricksGitCredential -PersonalAccessToken "abc123" -GitUsername "myUser" -GitProvider "azureDevOpsServices" #> param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [string] [ValidateSet("awsCodeCommit", "azureDevOpsServices", "azureDevOpsServicesAad", "bitbucketCloud", "bitbucketServer", "gitHub", "gitHubEnterprise", "gitLab", "gitLabEnterpriseEdition")] [Alias("git_provider", "provider")] $GitProvider #[Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [string] [Alias("git_username", "username")] $GitUsername, #[Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [string] [Alias("personal_access_token", "pat")] $PersonalAccessToken ) DynamicParam { #Create the RuntimeDefinedParameterDictionary $Dictionary = New-Object System.Management.Automation.RuntimeDefinedParameterDictionary if($GitProvider -ne "azureDevOpsServicesAad") { New-DynamicParam -Name "GitUsername" -Alias "git_username", "username" -ValueFromPipelineByPropertyName -Mandatory -DPDictionary $Dictionary New-DynamicParam -Name "PersonalAccessToken" -Alias "personal_access_token", "pat" -ValueFromPipelineByPropertyName -Mandatory -DPDictionary $Dictionary } #return RuntimeDefinedParameterDictionary return $Dictionary } begin { $requestMethod = "POST" $apiEndpoint = "/2.0/git-credentials" } process { $GitUsername = $PSBoundParameters.GitUsername $PersonalAccessToken = $PSBoundParameters.PersonalAccessToken Write-Verbose "Building Body/Parameters for final API call ..." #Set parameters $parameters = @{ git_provider = $GitProvider } $parameters | Add-Property -Name "git_username" -Value $GitUsername -Force $parameters | Add-Property -Name "personal_access_token" -Value $PersonalAccessToken -Force $result = Invoke-DatabricksApiRequest -Method $requestMethod -EndPoint $apiEndpoint -Body $parameters # this call does not return any results return $result } } Function Update-DatabricksGitCredential { <# .SYNOPSIS Creates a Git credential entry for the user. Only one Git credential per user is supported, so any attempts to create credentials if an entry already exists will fail. Use the PATCH endpoint to update existing credentials, or the DELETE endpoint to delete existing credentials. .DESCRIPTION Creates a Git credential entry for the user. Only one Git credential per user is supported, so any attempts to create credentials if an entry already exists will fail. Use the PATCH endpoint to update existing credentials, or the DELETE endpoint to delete existing credentials. Official API Documentation: https://docs.databricks.com/dev-tools/api/latest/gitcredentials.html#operation/update-git-credential .PARAMETER GitProvider Git provider. This field is case-insensitive. The available Git providers are awsCodeCommit, azureDevOpsServices, bitbucketCloud, bitbucketServer, gitHub, gitHubEnterprise, gitLab, and gitLabEnterpriseEdition. .PARAMETER GitUsername Git username. .PARAMETER PersonalAccessToken The personal access token used to authenticate to the corresponding Git provider. .EXAMPLE Update-DatabricksGitCredential -CredentialID "339753641436544" -PersonalAccessToken "abc123" -GitUsername "myUser" -GitProvider "azureDevOpsServices" #> param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [Alias("credential_id")] [string] $CredentialID, [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [string] [ValidateSet("awsCodeCommit", "azureDevOpsServices", "azureDevOpsServicesAad", "bitbucketCloud", "bitbucketServer", "gitHub", "gitHubEnterprise", "gitLab", "gitLabEnterpriseEdition")] [Alias("git_provider", "provider")] $GitProvider #[Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [string] [Alias("git_username", "username")] $GitUsername, #[Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [string] [Alias("personal_access_token", "pat")] $PersonalAccessToken ) DynamicParam { #Create the RuntimeDefinedParameterDictionary $Dictionary = New-Object System.Management.Automation.RuntimeDefinedParameterDictionary if($GitProvider -ne "azureDevOpsServicesAad") { New-DynamicParam -Name "GitUsername" -Alias "git_username", "username" -ValueFromPipelineByPropertyName -Mandatory -DPDictionary $Dictionary New-DynamicParam -Name "PersonalAccessToken" -Alias "personal_access_token", "pat" -ValueFromPipelineByPropertyName -Mandatory -DPDictionary $Dictionary } #return RuntimeDefinedParameterDictionary return $Dictionary } begin { $requestMethod = "PATCH" $apiEndpoint = "/2.0/git-credentials/$CredentialID" } process { $GitUsername = $PSBoundParameters.GitUsername $PersonalAccessToken = $PSBoundParameters.PersonalAccessToken Write-Verbose "Building Body/Parameters for final API call ..." #Set parameters $parameters = @{ personal_access_token = $PersonalAccessToken } $parameters | Add-Property -Name "git_username" -Value $GitUsername -Force $parameters | Add-Property -Name "git_provider" -Value $GitProvider -Force $result = Invoke-DatabricksApiRequest -Method $requestMethod -EndPoint $apiEndpoint -Body $parameters # this call does not return any results return $result } } Function Remove-DatabricksGitCredential { <# .SYNOPSIS Deletes the specified credential. .DESCRIPTION Deletes the specified credential. Official API Documentation: https://docs.databricks.com/dev-tools/api/latest/gitcredentials.html#operation/delete-git-credential .PARAMETER CredentialID The ID for the corresponding credential to delete. .EXAMPLE Remove-DatabricksGitCredential -CredentialID "93488329053511" #> [CmdletBinding()] param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [Alias("credential_id")] [string] $CredentialID ) begin { $requestMethod = "DELETE" $apiEndpoint = "/2.0/git-credentials/$CredentialID" } process { Write-Verbose "Building Body/Parameters for final API call ..." #Set parameters $parameters = @{} $result = Invoke-DatabricksApiRequest -Method $requestMethod -EndPoint $apiEndpoint -Body $parameters # this call does not return any results #return $result } } |