New-GitLabProjectIssue.ps1
function New-GitLabProjectIssue { <# .SYNOPSIS Creates a new project issue. .DESCRIPTION The New-GitLabProjectIssue functions creates a new function in the specified project. .EXAMPLE New-GitLabProjectIssue -ProjectID 20 -Title 'Important Issue' --------------------------------------------------------------- Creates the Issue title 'Important Issue' in project woth ID 20 .EXAMPLE New-GitLabProjectIssue -ProjectID 20 -Title 'Important Issue' -PassThru --------------------------------------------------------------- Creates the Issue title 'Important Issue' in project woth ID 20 and returns the new issue. #> [CmdletBinding()] [Alias()] [OutputType()] Param ( #The Id of the project [Parameter(HelpMessage = 'ProjectID', Mandatory = $true)] [Alias('ID')] [int]$ProjectID, # The title of the new issue [Parameter(Helpmessage = 'The title of an issue', mandatory = $true)] [string]$Title, # The description of the new issue [Parameter(Helpmessage = 'The description of the issue', mandatory = $false)] [string]$Description, # Specify the user to assign the issue [Parameter(Helpmessage = 'The ID of a user to assign issue', mandatory = $false)] [Alias('assignee_id')] [int]$AssigneeID, # Specify the ID of the milestone to assign the issue [Parameter(Helpmessage = 'The ID of a milestone to assign issue', mandatory = $false)] [Alias('milestone_id')] [int]$MilestoneID, # Specify the labels for the new issue [Parameter(HelpMessage = 'label names for an issue', mandatory = $false)] [string[]]$Labels, # Specify the date the issue was created [Parameter(Helpmessage = 'the date the issue was created', mandatory = $false)] [alias('created_at')] [datetime]$CreatedAt, # Specify the due date for the issue [Parameter(Helpmessage = 'the due date of the issue', mandatory = $false)] [alias('due_date')] [datetime]$DueDate, # Specify Existing GitlabConnector [Parameter(HelpMessage = 'Specify Existing GitlabConnector', Mandatory = $false, DontShow = $true)] [psobject]$GitlabConnect = (Get-GitlabConnect), # Passthru the created Issue [Parameter(HelpMessage = 'Passthru the created project', Mandatory = $false)] [switch]$PassThru ) $httpmethod = 'post' $apiurl = "projects/$ProjectID/issues" $parameters = @{ title = $Title } if($Description) { $parameters.description = $Description } if($AssigneeID) { $parameters.'assignee_id' = $AssigneeID } if ($MilestoneID) { $parameters.'milestone_id' = $MilestoneID } if($Labels) { $parameters.labels = @($Labels) -join ',' } if($CreatedAt) { $parameters.'created_at' = $CreatedAt.ToUniversalTime().tostring('s') +'Z' } if($DueDate) { $parameters.'due_date' = $DueDate.tostring("yyyy'-'MM'-'dd") } $newissue = $GitlabConnect.callapi($apiurl,$httpmethod,$parameters) if($PassThru) { return $newissue } } |