export type Repository = {
  name: string,
  description?: string,
  cloneUrl: string,
  defaultBranch: string,
  branches: Array<{
    name: string,
    description?: string,
    ahead: number,
    behind: number,
    compareTo: string,
    head: string,
    fileList: Array<string>,
  }>,
  tags?: Array<{
    name: string,
    sha: string,
    fileList: Array<string>,
  }>,
  commits?: Map<string, {
    hash: string,
    message: string,
    isMerge: boolean,
    author: string,
    date: Date,
    parent: string | null,
    diffs: Array<{
      fileName: string,
      lineNumber: number,
      beforeText: string,
      afterText: string,
    }>
  }>,
}

export type SortedFileList = Array<{
  name: string,
  fullPath: string,
  isDirectory: boolean,
}>
