Types.ps1xml

<?xml version="1.0" encoding="utf-8" ?>
<Types>
  <Type>
    <Name>Gitlab.Branch</Name>
    <Members>
    </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>ProjectName</Name>
        <GetScriptBlock>$this.WebUrl -match '://[\w\.]+/(?&lt;ProjectPath&gt;.*)/-' | Out-Null; $Matches['ProjectPath']</GetScriptBlock>
      </ScriptProperty>
    </Members>
  </Type>
  <Type>
    <Name>Gitlab.MergeRequest</Name>
    <Members>
      <ScriptProperty>
        <Name>MergeRequestId</Name>
        <GetScriptBlock>$this.Iid</GetScriptBlock>
      </ScriptProperty>
      <ScriptProperty>
        <Name>AuthorName</Name>
        <GetScriptBlock>$this.Author.Name</GetScriptBlock>
      </ScriptProperty>
      <ScriptProperty>
        <Name>AssigneeName</Name>
        <GetScriptBlock>$this.Assignee.Name</GetScriptBlock>
      </ScriptProperty>
      <ScriptProperty>
        <Name>ProjectName</Name>
        <GetScriptBlock>$this.WebUrl -match '://[\w\.]+/(?&lt;ProjectPath&gt;.*)/-' | Out-Null; $Matches['ProjectPath']</GetScriptBlock>
      </ScriptProperty>
      <ScriptProperty>
        <Name>ChangeSummary</Name>
        <GetScriptBlock>$this | Get-GitlabMergeRequestChangeSummary</GetScriptBlock>
      </ScriptProperty>
    </Members>
  </Type>
  <Type>
    <Name>Gitlab.Pipeline</Name>
    <Members>
      <ScriptProperty>
        <Name>PipelineId</Name>
        <GetScriptBlock>$this.Id</GetScriptBlock>
      </ScriptProperty>
      <ScriptProperty>
        <Name>UserName</Name>
        <GetScriptBlock>$this.User.username</GetScriptBlock>
      </ScriptProperty>
    </Members>
  </Type>
    <Type>
    <Name>Gitlab.PipelineSchedule</Name>
    <Members>
    </Members>
  </Type>
  <Type>
    <Name>Gitlab.Job</Name>
    <Members>
      <ScriptProperty>
        <Name>JobId</Name>
        <GetScriptBlock>$this.Id</GetScriptBlock>
      </ScriptProperty>
      <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>
        <Name>ProjectId</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>
</Types>