drone-1.1.0: src/Drone/Types/Repo.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module Drone.Types.Repo
( Repo
, RepoPatch
, toRepoPatch
)where
import Data.Extensible
import Data.Functor.Identity (Identity)
import Data.Int (Int64)
import Data.Text (Text)
type Repo = Record
'[ "id" >: Int64
, "uid" >: Text
, "user_id" >: Int64
, "namespace" >: Text
, "name" >: Text
, "slug" >: Text
, "scm" >: Text
, "git_http_url" >: Text
, "git_ssh_url" >: Text
, "link" >: Text
, "default_branch" >: Text
, "private" >: Bool
, "visibility" >: Text
, "active" >: Bool
, "config_path" >: Text
, "trusted" >: Bool
, "protected" >: Bool
, "timeout" >: Int64
, "counter" >: Int
, "synced" >: Int64
, "created" >: Int64
, "updated" >: Int64
, "version" >: Int64
]
type RepoPatch = RepoPatchFields :& Nullable (Field Identity)
type RepoPatchFields =
'[ "config_path" >: Text
, "protected" >: Bool
, "trusted" >: Bool
, "timeout" >: Int64
, "visibility" >: Text
, "counter" >: Int
]
type RepoPatch' = Record RepoPatchFields
toRepoPatch :: Repo -> RepoPatch
toRepoPatch repo = wrench patch
where
patch :: RepoPatch'
patch = shrink repo