@@ -67,14 +67,14 @@ module Development.Benchmark.Rules
67
67
) where
68
68
69
69
import Control.Applicative
70
- import Control.Lens ((^.) )
70
+ import Control.Lens ((^.) , view , preview )
71
71
import Control.Monad
72
72
import qualified Control.Monad.State as S
73
73
import Data.Aeson (FromJSON (.. ),
74
74
ToJSON (.. ),
75
75
Value (.. ), object ,
76
76
(.!=) , (.:?) , (.=) )
77
- import Data.Aeson.Lens (_Object )
77
+ import Data.Aeson.Lens (_Object , AsJSON ( _JSON ), _String )
78
78
import Data.Char (isDigit )
79
79
import Data.List (find , isInfixOf ,
80
80
stripPrefix ,
@@ -504,8 +504,10 @@ instance FromJSON GitCommit where
504
504
parseJSON o@ (Object _) = do
505
505
let keymap = o ^. _Object
506
506
case toList keymap of
507
- [(name, String gitName)] -> pure $ GitCommit gitName (Just name) Nothing True
508
- [(name, Object props)] ->
507
+ -- excuse the aeson 2.0 compatibility hack
508
+ [(preview _String . toJSON -> Just name, String gitName)] ->
509
+ pure $ GitCommit gitName (Just name) Nothing True
510
+ [(preview _String . toJSON -> Just name, Object props)] ->
509
511
GitCommit
510
512
<$> props .:? " git" .!= name
511
513
<*> pure (Just name)
0 commit comments