-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Krank checks issue tracker link status in your source code -- -- Krank checks issue tracker link status in your source code. When you -- implement a workaround because of an upstream issue, you often put a -- link in comment in your code. Krank will tell you when the issue -- associated with your workaround is closed, meaning that you may get -- ride of your workaround. @package krank @version 0.3.0 module Krank.Types newtype GithubKey GithubKey :: Text -> GithubKey newtype GitlabHost GitlabHost :: Text -> GitlabHost newtype GitlabKey GitlabKey :: Text -> GitlabKey data Violation Violation :: Text -> ViolationLevel -> Text -> SourcePos -> Violation -- | A textual representation of the checker. Most of the time that's the -- chunck of text parsed [checker] :: Violation -> Text -- | The ViolationLevel associated with the result [level] :: Violation -> ViolationLevel -- | A message describing the error [message] :: Violation -> Text -- | The position in the input sources of the chunck [location] :: Violation -> SourcePos data ViolationLevel Info :: ViolationLevel Warning :: ViolationLevel Error :: ViolationLevel data KrankConfig KrankConfig :: Maybe GithubKey -> Map GitlabHost GitlabKey -> Bool -> Bool -> KrankConfig -- | The github oAuth token [githubKey] :: KrankConfig -> Maybe GithubKey -- | The gitlab oAuth token [gitlabKeys] :: KrankConfig -> Map GitlabHost GitlabKey -- | If True, all IO operations, such as HTTP requests, are ignored [dryRun] :: KrankConfig -> Bool -- | Use color for formatting [useColors] :: KrankConfig -> Bool data SourcePos SourcePos :: FilePath -> Int -> Int -> SourcePos [file] :: SourcePos -> FilePath [lineNumber] :: SourcePos -> Int [colNumber] :: SourcePos -> Int -- | Represents a localized chunk of information in a file data Localized t Localized :: SourcePos -> t -> Localized t [getLocation] :: Localized t -> SourcePos [unLocalized] :: Localized t -> t -- | This monad represents all the effect that Krank needs class (Monad m, MonadCatch m) => MonadKrank m -- | Run a REST requet krankRunRESTRequest :: (MonadKrank m, FromJSON t) => Url 'Https -> Option 'Https -> m t -- | Read the configuration krankAsks :: MonadKrank m => (KrankConfig -> b) -> m b -- | Apply a function on many item in a concurrent way krankMapConcurrently :: MonadKrank m => (a -> m b) -> [a] -> m [b] krankForConcurrently :: MonadKrank m => [a] -> (a -> m b) -> m [b] -- | Read a file from filesystem krankReadFile :: MonadKrank m => FilePath -> m ByteString -- | Log an error (with trailing n) krankPutStrLnStderr :: MonadKrank m => Text -> m () -- | Log a message (without trailing n) krankPutStr :: MonadKrank m => Text -> m () instance GHC.Show.Show Krank.Types.GithubKey instance GHC.Show.Show Krank.Types.GitlabKey instance GHC.Classes.Eq Krank.Types.GitlabHost instance GHC.Classes.Ord Krank.Types.GitlabHost instance GHC.Show.Show Krank.Types.GitlabHost instance GHC.Show.Show Krank.Types.ViolationLevel instance GHC.Classes.Ord Krank.Types.SourcePos instance GHC.Classes.Eq Krank.Types.SourcePos instance GHC.Show.Show Krank.Types.SourcePos instance GHC.Classes.Eq t => GHC.Classes.Eq (Krank.Types.Localized t) instance GHC.Show.Show t => GHC.Show.Show (Krank.Types.Localized t) instance GHC.Show.Show Krank.Types.Violation instance GHC.Show.Show Krank.Types.KrankConfig module Krank.Checkers.Ignore data IgnoreCommand IgnoreLine :: IgnoreCommand -- | Takes a list of Violation, some ignore commands and remove all those -- that are ignored due to an ignore marker filterViolations :: [Violation] -> FilePath -> ByteString -> [Violation] instance GHC.Classes.Eq Krank.Checkers.Ignore.IgnoreCommand instance GHC.Show.Show Krank.Checkers.Ignore.IgnoreCommand module Utils.Display -- | indent the text given by a certain number of space character If the -- text given contains multiple lines, all the lines but the first will -- be prefixed by the continuation character '|' indent :: Int -> Text -> Text module Krank.Formatter showViolation :: Bool -> Violation -> Text module Utils.Req showHTTPException :: (Response () -> ByteString -> Text) -> HttpException -> Text showRawResponse :: Response () -> ByteString -> Text module Utils.Gitlab -- | Uses the helper to show generic HTTP issues and provides a specific -- handler for Gitlab "business" exceptions showGitlabException :: HttpException -> Text gitlabAPILimitErrorText :: Text gitlabNotFoundErrorText :: Text instance Data.Aeson.Types.ToJSON.ToJSON Utils.Gitlab.GitlabError instance Data.Aeson.Types.FromJSON.FromJSON Utils.Gitlab.GitlabError instance GHC.Show.Show Utils.Gitlab.GitlabError instance GHC.Generics.Generic Utils.Gitlab.GitlabError module Utils.Github -- | Uses the helper to show generic HTTP issues and provides a specific -- handler for Github "business" exceptions showGithubException :: HttpException -> Text githubAPILimitErrorText :: Text githubNotFoundErrorText :: Text instance Data.Aeson.Types.ToJSON.ToJSON Utils.Github.GithubError instance Data.Aeson.Types.FromJSON.FromJSON Utils.Github.GithubError instance GHC.Show.Show Utils.Github.GithubError instance GHC.Generics.Generic Utils.Github.GithubError module Krank.Checkers.IssueTracker data GitIssueRef GitIssueRef :: GitServer -> Text -> Text -> Int -> GitIssueRef [$sel:server:GitIssueRef] :: GitIssueRef -> GitServer [$sel:owner:GitIssueRef] :: GitIssueRef -> Text [$sel:repo:GitIssueRef] :: GitIssueRef -> Text [$sel:issueNum:GitIssueRef] :: GitIssueRef -> Int data GitServer Github :: GitServer Gitlab :: GitlabHost -> GitServer -- | Represents a localized chunk of information in a file data Localized t Localized :: SourcePos -> t -> Localized t [getLocation] :: Localized t -> SourcePos [unLocalized] :: Localized t -> t checkText :: MonadKrank m => FilePath -> ByteString -> m [Violation] -- | Extract all issues correctly localized Note: we use ByteString -- internally. This way we do not have to care about the possible -- encoding of the input files. In programming world, we mostly use ascii -- variants. This gives a few performance improvement compared to -- initially converting everything to Text and search on it. extractIssues :: FilePath -> ByteString -> [Localized GitIssueRef] -- | This regex represents a github/gitlab issue URL gitRepoRe :: Regex serverDomain :: GitServer -> Text -- | Extract all issues on one line and returns a list of the raw text -- associated with an issue extractIssuesOnALine :: ByteString -> [(Int, GitIssueRef)] instance GHC.Show.Show Krank.Checkers.IssueTracker.GitServer instance GHC.Classes.Eq Krank.Checkers.IssueTracker.GitServer instance GHC.Show.Show Krank.Checkers.IssueTracker.IssueStatus instance GHC.Classes.Eq Krank.Checkers.IssueTracker.IssueStatus instance GHC.Show.Show Krank.Checkers.IssueTracker.GitIssueRef instance GHC.Classes.Eq Krank.Checkers.IssueTracker.GitIssueRef instance GHC.Show.Show Krank.Checkers.IssueTracker.GitIssueData instance GHC.Classes.Eq Krank.Checkers.IssueTracker.GitIssueData module Krank runKrank :: MonadKrank m => [FilePath] -> m Bool -- | This just exists to avoid the orphan instance on MonadKrank newtype Krank t Krank :: ReaderT KrankConfig IO t -> Krank t [unKrank] :: Krank t -> ReaderT KrankConfig IO t instance Control.Monad.Catch.MonadThrow Krank.Krank instance Control.Monad.Catch.MonadCatch Krank.Krank instance GHC.Base.Monad Krank.Krank instance GHC.Base.Applicative Krank.Krank instance GHC.Base.Functor Krank.Krank instance Krank.Types.MonadKrank Krank.Krank module Version displayVersion :: String