Remove-GitLabProjectRepositoryFile.ps1

function Remove-GitLabProjectRepositoryFile
{
  <#
      .SYNOPSIS
      Delete existing file in repository
      .DESCRIPTION
      The Remove-GitLabProjectRepositoryFile function removes the specified file from the branch.
      a commit message needs to be passed.
      .EXAMPLE
      Remove-GitLabProjectRepositoryFile -ProjectID 20 -BranchName master -FilePath 'Readme.md' -commit 'no readme needed'
      ---------------------------------------------------------------
      Removes readme.md from branch master with commit 'no readme needed'
  #>

  [CmdletBinding(
     SupportsShouldProcess=$true,
    ConfirmImpact="High")]
  [Alias()]
  [OutputType()]
  Param
  (
    # The ID of a project
    [Parameter(HelpMessage = 'ProjectID',
    Mandatory = $true)]
    [Alias('ID')]
    [int]$ProjectID,

    # The name of branch
    [Parameter(HelpMessage = 'Commit SHA or branch name',
    Mandatory = $true)]
    [Alias('branch_name')]
    [string]$BranchName,

    # The path of the file inside the projects repository.
    [Parameter(Helpmessage = 'The path of the file',
    Mandatory = $true)]
    [alias('file_path')]
    [String]$FilePath,

    # Commit message
    [Parameter(HelpMessage = 'Commit message',
    Mandatory = $true)]
    [alias('commit_message')]
    [string]$CommitMessage,

    # Specify Existing GitlabConnector
    [Parameter(HelpMessage = 'Specify Existing GitlabConnector',
        Mandatory = $false,
    DontShow = $true)]
    [psobject]$GitlabConnect = (Get-GitlabConnect)
  )

  $httpmethod = 'delete'
  $apiurl = "/projects/$ProjectID/repository/files"
  $parameters = @{
    'file_path'    = $FilePath
    'branch_name'  = $BranchName
    'commit_message' = $CommitMessage
  }
  if($pscmdlet.ShouldProcess("$($BranchName):$FilePath","Remove")){
    $GitlabConnect.callapi($apiurl,$httpmethod,$parameters)
  }
}