{-# LANGUAGE OverloadedStrings #-}
-- | The underlying tree of SHA1s and files that make up a git repo. The API is
-- described on .
module Github.GitData.Trees (
tree,
tree',
treeR,
nestedTree,
nestedTree',
nestedTreeR,
module Github.Data,
) where
import Github.Auth
import Github.Data
import Github.Request
-- | A tree for a SHA1.
--
-- > tree (Just ("github-username", "github-password")) "thoughtbot" "paperclip" "fe114451f7d066d367a1646ca7ac10e689b46844"
tree' :: Maybe GithubAuth -> Name GithubOwner -> Name Repo -> Name Tree -> IO (Either Error Tree)
tree' auth user repo sha =
executeRequestMaybe auth $ treeR user repo sha
-- | A tree for a SHA1.
--
-- > tree "thoughtbot" "paperclip" "fe114451f7d066d367a1646ca7ac10e689b46844"
tree :: Name GithubOwner -> Name Repo -> Name Tree -> IO (Either Error Tree)
tree = tree' Nothing
-- | Get a Tree.
-- See
treeR :: Name GithubOwner -> Name Repo -> Name Tree -> GithubRequest k Tree
treeR user repo sha =
GithubGet ["repos", toPathPart user, toPathPart repo, "git", "trees", toPathPart sha] []
-- | A recursively-nested tree for a SHA1.
--
-- > nestedTree' (Just ("github-username", "github-password")) "thoughtbot" "paperclip" "fe114451f7d066d367a1646ca7ac10e689b46844"
nestedTree' :: Maybe GithubAuth -> Name GithubOwner -> Name Repo -> Name Tree -> IO (Either Error Tree)
nestedTree' auth user repo sha =
executeRequestMaybe auth $ nestedTreeR user repo sha
-- | A recursively-nested tree for a SHA1.
--
-- > nestedTree "thoughtbot" "paperclip" "fe114451f7d066d367a1646ca7ac10e689b46844"
nestedTree :: Name GithubOwner -> Name Repo -> Name Tree -> IO (Either Error Tree)
nestedTree = nestedTree' Nothing
-- | Get a Tree Recursively.
-- See
nestedTreeR :: Name GithubOwner -> Name Repo -> Name Tree -> GithubRequest k Tree
nestedTreeR user repo sha =
GithubGet ["repos", toPathPart user, toPathPart repo, "git", "trees", toPathPart sha] [("recursive", Just "1")]