packages feed

hercules-ci-api-0.6.0.0: src/Hercules/API/Repos/Repo.hs

{-# LANGUAGE DeriveAnyClass #-}

module Hercules.API.Repos.Repo where

import Hercules.API.Accounts.Account (Account)
import Hercules.API.Prelude

-- | Information about a repository on a connected repository site such as github.
data Repo = Repo
  { id :: Id Repo,
    ownerId :: Id Account,
    siteSlug :: Text,
    slug :: Text,
    displayName :: Text,
    imageURL :: Maybe Text,
    isPublic :: Bool,
    -- | An installed repo is one that Hercules has permission to.
    --
    -- A non-installed repo is one that is only visible because of the
    -- authenticated user's credentials.
    isInstalled :: Bool,
    -- | Whether the authenticated user can grant permission to this
    --   repository
    isInstallable :: Bool
  }
  deriving (Generic, Show, Eq, NFData, ToJSON, FromJSON, ToSchema)