krank 0.3.0 → 0.3.1
raw patch · 8 files changed
+23/−7 lines, 8 filesdep +hspec-discoverdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: hspec-discover
Dependency ranges changed: base
API changes (from Hackage documentation)
- Krank.Checkers.IssueTracker: [$sel:issueNum:GitIssueRef] :: GitIssueRef -> Int
- Krank.Checkers.IssueTracker: [$sel:owner:GitIssueRef] :: GitIssueRef -> Text
- Krank.Checkers.IssueTracker: [$sel:repo:GitIssueRef] :: GitIssueRef -> Text
- Krank.Checkers.IssueTracker: [$sel:server:GitIssueRef] :: GitIssueRef -> GitServer
+ Krank.Checkers.IssueTracker: [issueNum] :: GitIssueRef -> Int
+ Krank.Checkers.IssueTracker: [owner] :: GitIssueRef -> Text
+ Krank.Checkers.IssueTracker: [repo] :: GitIssueRef -> Text
+ Krank.Checkers.IssueTracker: [server] :: GitIssueRef -> GitServer
- Krank.Types: class (Monad m, MonadCatch m) => MonadKrank m
+ Krank.Types: class (Monad m, MonadCatch m) => MonadKrank (m :: Type -> Type)
Files
- CHANGELOG.md +6/−0
- app/Main.hs +1/−0
- krank.cabal +3/−2
- src/Krank.hs +1/−0
- src/Krank/Checkers/IssueTracker.hs +1/−1
- tests/Test/Krank/Checkers/IssueTrackerSpec.hs +5/−2
- tests/Test/Utils/GithubSpec.hs +3/−1
- tests/Test/Utils/GitlabSpec.hs +3/−1
CHANGELOG.md view
@@ -1,5 +1,11 @@ # Revision history for krank +## 0.3.1 -- 2025-12-07++* Support for GHC up to 9.12+* Fix build with http-client >= 0.7.16+* Fix url parsing in markdown+ ## 0.2.3 -- 2021-07-18 * #88 krank tries to test files listed by `git ls-files` or `find` by default.
app/Main.hs view
@@ -21,6 +21,7 @@ import System.Process import Text.Regex.PCRE.Heavy import Version (displayVersion)+import Control.Monad (unless) data KrankOpts = KrankOpts { codeFilePaths :: [FilePath],
krank.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: krank-version: 0.3.0+version: 0.3.1 synopsis: Krank checks issue tracker link status in your source code -- description: bug-reports: https://github.com/guibou/krank/issues@@ -16,7 +16,7 @@ extra-source-files: CHANGELOG.md, README.md HACKING.md docs/Checkers/IssueTracker.md common shared-library- build-depends: base >= 4.9+ build-depends: base >= 4.9 && <= 4.23.0.0 , PyF >= 0.8.1.0 , aeson >= 2 , bytestring@@ -72,6 +72,7 @@ Utils.Req build-depends: hspec >= 2.7 , hspec-expectations+ , hspec-discover ghc-options: -threaded -rtsopts -with-rtsopts=-N executable krank
src/Krank.hs view
@@ -25,6 +25,7 @@ import qualified Network.HTTP.Req as Req import PyF import System.IO (stderr)+import Control.Monad (forM_) processFile :: MonadKrank m =>
src/Krank/Checkers/IssueTracker.hs view
@@ -64,7 +64,7 @@ gitRepoRe :: RE.Regex -- NOTE: \b at the beginning is really import for performances -- because it dramatically reduces the number of backtracks-gitRepoRe = [RE.re|\b(?>https?://)?(?>www\.)?([^/ ]+)/([^ ]+)/([^- ][^/ ]*)(?>/-)?/issues/([0-9]+)|]+gitRepoRe = [RE.re|\b(?>https?://)?(?>www\.)?([^/ ]+)/([^ /][^ ]*)/([^-/ ][^/ ]*)(?>/-)?/issues/([0-9]+)|] -- | Extract all issues on one line and returns a list of the raw text associated with an issue extractIssuesOnALine :: ByteString -> [(Int, GitIssueRef)]
tests/Test/Krank/Checkers/IssueTrackerSpec.hs view
@@ -17,7 +17,7 @@ import Data.Coerce import Data.Map (Map) import qualified Data.Map as Map-import Data.Text+import Data.Text (Text) import Krank import Krank.Checkers.IssueTracker import Krank.Types@@ -104,13 +104,16 @@ it "handles long gitlab url with groups and with the odd /-" $ do let match = check [fmt|{domainName}/gbataille_main/sub_level_1/sub_level_2/deep_in_groups/-/issues/12|] match `shouldBe` Just (GitIssueRef domain "gbataille_main/sub_level_1/sub_level_2" "deep_in_groups" 12)+ it "handle an url embeded in markdown" $ do+ let match = check [fmt|lalalalalalaalla [Issue XX](https://{domainName}/foo/bar/issues/123) blo blo blu|]+ match `shouldBe` Just (GitIssueRef domain "foo" "bar" 123) spec :: Spec spec = do context "Test.Krank.Checkers.specIssueTracker" $ do describe "#githubParser" $ giturlTests Github- describe "#githlabParser" $+ describe "#gitlabParser" $ giturlTests (Gitlab (GitlabHost "gitlab.com")) describe "#extractIssues" $ it "handles both github and gitlab" $
tests/Test/Utils/GithubSpec.hs view
@@ -56,7 +56,9 @@ showGithubException exception `shouldBe` showHTTPException showRawResponse exception dummyResponse :: Status -> Response ()-#if MIN_VERSION_http_client(0,7,8)+#if MIN_VERSION_http_client(0,7,16)+dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ()) (error "WTF") []+#elif MIN_VERSION_http_client(0,7,8) dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ()) (error "WTF") #else dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ())
tests/Test/Utils/GitlabSpec.hs view
@@ -63,7 +63,9 @@ showGitlabException exception `shouldBe` showHTTPException showRawResponse exception dummyResponse :: Status -> Response ()-#if MIN_VERSION_http_client(0,7,8)+#if MIN_VERSION_http_client(0,7,16)+dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ()) (error "WTF") []+#elif MIN_VERSION_http_client(0,7,8) dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ()) (error "WTF") #else dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ())