Types.ps1xml
<?xml version="1.0" encoding="utf-8" ?> <Types> <Type> <Name>Gitlab.Branch</Name> <Members> <ScriptProperty> <Name>LastAuthor</Name> <GetScriptBlock>$this.Commit.author_name</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>LastUpdated</Name> <GetScriptBlock> $LastUpdated = $this.Commit.authored_date if ($this.Commit.committed_date -gt $LastUpdated) { $LastUpdated = $this.Commit.committed_date } $LastUpdated </GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.ProtectedBranch</Name> <Members> <ScriptProperty> <Name>WhoCanPush</Name> <GetScriptBlock>$this.PushAccessLevels.access_level_description -join ','</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>WhoCanMerge</Name> <GetScriptBlock>$this.MergeAccessLevels.access_level_description -join ','</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Group</Name> <Members> </Members> </Type> <Type> <Name>Gitlab.Issue</Name> <Members> <ScriptProperty> <Name>AuthorName</Name> <GetScriptBlock>$this.Author.Name</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>AssigneeName</Name> <GetScriptBlock>$this.Assignee.Name</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>ProjectPath</Name> <GetScriptBlock>$this.WebUrl -match '://[\w\.]+/(?<ProjectPath>.*)/-' | Out-Null; $Matches.ProjectPath</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>SortKey</Name> <GetScriptBlock> if ($this.DueDate) { $this.DueDate } else { "$($this.ProjectPath)/$($this.IssueId)" } </GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.MergeRequest</Name> <Members> <ScriptProperty> <Name>AuthorName</Name> <GetScriptBlock>$this.Author.Name</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>AssigneeName</Name> <GetScriptBlock>$this.Assignee.Name</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>ProjectPath</Name> <GetScriptBlock>$this.WebUrl -match '://[\w\.]+/(?<ProjectPath>.*)/-' | Out-Null; $Matches.ProjectPath</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Pipeline</Name> <Members> <ScriptProperty> <Name>UserName</Name> <GetScriptBlock>$this.User.username</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>Duration</Name> <GetScriptBlock>$this.FinishedAt - $this.CreatedAt</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>Runtime</Name> <GetScriptBlock>$this.Duration - $this.QueuedDuration</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.PipelineSchedule</Name> <Members> </Members> </Type> <Type> <Name>Gitlab.Environment</Name> <Members> <ScriptProperty> <Name>EnvironmentName</Name> <GetScriptBlock>$this.Name</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>ProjectId</Name> <GetScriptBlock>$this.Project.id</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Deployment</Name> <Members> <ScriptProperty> <Name>EnvironmentId</Name> <GetScriptBlock>$this.Environment.id</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>EnvironmentName</Name> <GetScriptBlock>$this.Environment.name</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>Created</Name> <GetScriptBlock>$this.CreatedAt.ToString('yyyy-MM-dd HH:mm')</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>Deployer</Name> <GetScriptBlock>$this.User.name</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>Pipeline</Name> <GetScriptBlock>$this.Deployable.Pipeline | New-WrapperObject 'Gitlab.Pipeline'</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Job</Name> <Members> <ScriptProperty> <Name>ProjectId</Name> <GetScriptBlock>$this.Pipeline.project_id</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.TestReport</Name> <Members> <ScriptProperty> <Name>Failures</Name> <GetScriptBlock>$this.TestSuites.test_cases | Where-Object status -eq 'failed'</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Project</Name> <Members> <ScriptProperty> <!-- for whatever reason this object does not include an Iid so proxy to Id --> <Name>Iid</Name> <GetScriptBlock>$this.Id</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>Group</Name> <GetScriptBlock>$($($this.PathWithNamespace -split '/') | Select-Object -SkipLast 1) -join '/'</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>Tags</Name> <GetScriptBlock>$this.TagList</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.MergeRequestSearchResult</Name> <Members> <ScriptProperty> <Name>AuthorName</Name> <GetScriptBlock>$this.Author.username</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.BlobSearchResult</Name> <Members> <ScriptProperty> <Name>LineNumber</Name> <GetScriptBlock>$this.Startline</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.User</Name> <Members> <ScriptProperty> <Name>Status</Name> <GetScriptBlock>$this.State</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Member</Name> <Members> <ScriptProperty> <Name>AccessLevelFriendly</Name> <GetScriptBlock> $Levels = Get-GitlabMemberAccessLevel $Levels.psobject.Properties | Where-Object Value -eq $this.AccessLevel | Select-Object -ExpandProperty Name </GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Event</Name> <Members> <ScriptProperty> <Name>Summary</Name> <GetScriptBlock> if ($this.PushData) { $RefEvents = @('created', 'pushed', 'removed') if ($RefEvents.Contains($this.PushData.action)) { "$($this.PushData.ref_type) $($this.PushData.ref)" } else { $this.PushData.commit_title } } else { if ($this.TargetType -and $this.TargetTitle) { "$($this.TargetType): $($this.TargetTitle)" } } </GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>CreatedAtSortable</Name> <GetScriptBlock>$this.CreatedAt.ToString('yyyy-MM-dd HH:mm')</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Note</Name> <Members> <ScriptProperty> <Name>AuthorUsername</Name> <GetScriptBlock>$this.Author.Username</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>UpdatedAtSortable</Name> <GetScriptBlock>$this.UpdatedAt.ToString('yyyy-MM-dd HH:mm')</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Configuration</Name> <Members> <ScriptProperty> <Name>SitesDisplay</Name> <GetScriptBlock> $this.Sites | ForEach-Object { [bool]::Parse($_.IsDefault) ? "$($_.Url) (default)" : $_.Url } </GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Variable</Name> <Members> </Members> </Type> <Type> <Name>Gitlab.RepositoryTree</Name> <Members> <ScriptProperty> <Name>ItemType</Name> <GetScriptBlock>$this.Type -eq 'tree' ? 'Directory' : 'File'</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.RepositoryFile</Name> <Members> <ScriptProperty> <Name>Name</Name> <GetScriptBlock>$this.FileName</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.Runner</Name> <Members> <ScriptProperty> <Name>Tags</Name> <GetScriptBlock>$this.TagList</GetScriptBlock> </ScriptProperty> </Members> </Type> <Type> <Name>Gitlab.RunnerJob</Name> <Members> <ScriptProperty> <Name>ProjectPath</Name> <GetScriptBlock>$this.Project.path_with_namespace</GetScriptBlock> </ScriptProperty> <ScriptProperty> <Name>Username</Name> <GetScriptBlock>$this.User.username</GetScriptBlock> </ScriptProperty> </Members> </Type> </Types> |