{-# LANGUAGE OverloadedStrings #-} -- | The Github Search API, as described at -- . module Github.Search( searchRepos', searchRepos, searchReposR, searchCode', searchCode, searchCodeR, searchIssues', searchIssues, searchIssuesR, module Github.Data, ) where import Data.Text (Text) import qualified Data.Text.Encoding as TE import Github.Auth import Github.Data import Github.Request -- | Perform a repository search. -- With authentication. -- -- > searchRepos' (Just $ GithubBasicAuth "github-username" "github-password') "a in%3Aname language%3Ahaskell created%3A>2013-10-01&per_page=100" searchRepos' :: Maybe GithubAuth -> Text -> IO (Either Error SearchReposResult) searchRepos' auth = executeRequestMaybe auth . searchReposR -- | Perform a repository search. -- Without authentication. -- -- > searchRepos "q=a in%3Aname language%3Ahaskell created%3A>2013-10-01&per_page=100" searchRepos :: Text -> IO (Either Error SearchReposResult) searchRepos = searchRepos' Nothing -- | Search repositories. -- See searchReposR :: Text -> GithubRequest k SearchReposResult searchReposR searchString = GithubGet ["search", "repositories"] [("q", Just $ TE.encodeUtf8 searchString)] -- | Perform a code search. -- With authentication. -- -- > searchCode' (Just $ GithubBasicAuth "github-username" "github-password') "a in%3Aname language%3Ahaskell created%3A>2013-10-01&per_page=100" searchCode' :: Maybe GithubAuth -> Text -> IO (Either Error SearchCodeResult) searchCode' auth = executeRequestMaybe auth . searchCodeR -- | Perform a code search. -- Without authentication. -- -- > searchCode "q=addClass+in:file+language:js+repo:jquery/jquery" searchCode :: Text -> IO (Either Error SearchCodeResult) searchCode = searchCode' Nothing -- | Search code. -- See searchCodeR :: Text -> GithubRequest k SearchCodeResult searchCodeR searchString = GithubGet ["search", "code"] [("q", Just $ TE.encodeUtf8 searchString)] -- | Perform an issue search. -- With authentication. -- -- > searchIssues' (Just $ GithubBasicAuth "github-username" "github-password') "a repo%3Aphadej%2Fgithub&per_page=100" searchIssues' :: Maybe GithubAuth -> Text -> IO (Either Error SearchIssuesResult) searchIssues' auth = executeRequestMaybe auth . searchIssuesR -- | Perform an issue search. -- Without authentication. -- -- > searchIssues "q=a repo%3Aphadej%2Fgithub&per_page=100" searchIssues :: Text -> IO (Either Error SearchIssuesResult) searchIssues = searchIssues' Nothing -- | Search issues. -- See searchIssuesR :: Text -> GithubRequest k SearchIssuesResult searchIssuesR searchString = GithubGet ["search", "issues"] [("q", Just $ TE.encodeUtf8 searchString)]