Get-GitLabProjectRepositoryCommit.ps1
function Get-GitLabProjectRepositoryCommit { <# .SYNOPSIS Get project commit history. .DESCRIPTION Get project commit history. returns full history for deafult branch by default. using -ReferenceName a different branch, tag or commit can be specified. to retrieve commits for a speceific timeframe use -StartTime and -EndTime. to retrieve a single commit specify the commit with -SHA .EXAMPLE Get-GitLabProjectRepositoryCommit -ProjectID 20 --------------------------------------------------------------- retrieves all commits composing the default branch. .EXAMPLE Get-GitLabProjectRepositoryCommit -StartTime (Get-Date).addDays(-2) -Endtime (Get-Date) --------------------------------------------------------------- retrieves all commits composing the default branch between now and 2 days ago. #> [CmdletBinding(defaultParameterSetName = 'AllCommits')] [Alias()] [OutputType()] Param ( # The ID of a project [Parameter(HelpMessage = 'The ID of a project', Mandatory = $true)] [Alias('ID')] [int]$ProjectID, # The name of a repository branch or tag or if not given the default branch [Parameter(ParameterSetName = 'AllCommits', HelpMessage = 'name of a repository branch or tag', Mandatory = $false)] [Alias('ref_name')] [String]$ReferenceName, # Only commits after or in this date will be returned [Parameter(ParameterSetName = 'AllCommits', HelpMessage = 'return commits after:', Mandatory = $false)] [Alias('since')] [datetime]$StartTime, # Only commits before or in this date will be returned [Parameter(ParameterSetName = 'AllCommits', HelpMessage = 'return commits before:', Mandatory = $false)] [Alias('until')] [datetime]$EndTime, # The commit hash or name of a repository branch or tag [Parameter(ParameterSetName = 'SingleCommit', HelpMessage = 'Commit Reference(hash|branchname|tagname)', Mandatory = $true)] [String]$sha, # Existing GitlabConnector Object, can be retrieved with Get-GitlabConnect [Parameter(HelpMessage = 'Specify Existing GitlabConnector', Mandatory = $false, DontShow = $true)] [psobject]$GitlabConnect = (Get-GitlabConnect) ) $httpmethod = 'get' $apiurl = "projects/$ProjectID/repository/commits" $parameters = @{} if($PSCmdlet.ParameterSetName -eq 'AllCommits') { if($ReferenceName) { $parameters.'ref_name' = $ReferenceName } if($StartTime) { $parameters.since = $StartTime.ToUniversalTime().tostring('s') +'Z' } if($EndTime) { $parameters.until = $EndTime.ToUniversalTime().tostring('s') +'Z' } } if($PSCmdlet.ParameterSetName -eq 'SingleCommit') { $apiurl += "/$sha" } $GitlabConnect.callapi($apiurl,$httpmethod,$parameters) } |