-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | GitHub Actions workflow commands
--
-- For printing workflow commands in GitHub Actions.
--
-- See
-- https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions
@package github-workflow-commands
@version 0.0.1.0
module GitHub.Workflow.Command.Syntax.ToByteString
class ToByteString a
toByteStringBuilder :: ToByteString a => a -> Builder
toByteString :: ToByteString a => a -> ByteString
printByteStringLn :: (ToByteString a, MonadIO m) => a -> m ()
module GitHub.Workflow.Command.Syntax.Name
newtype Name
Name :: Text -> Name
[$sel:text:Name] :: Name -> Text
class HasName a
name :: HasName a => Lens' a Name
instance Data.String.IsString GitHub.Workflow.Command.Syntax.Name.Name
instance GHC.Show.Show GitHub.Workflow.Command.Syntax.Name.Name
instance GHC.Classes.Ord GitHub.Workflow.Command.Syntax.Name.Name
instance GHC.Classes.Eq GitHub.Workflow.Command.Syntax.Name.Name
instance GitHub.Workflow.Command.Syntax.Name.HasName GitHub.Workflow.Command.Syntax.Name.Name
instance GitHub.Workflow.Command.Syntax.ToByteString.ToByteString GitHub.Workflow.Command.Syntax.Name.Name
module GitHub.Workflow.Command.Syntax.Message
newtype Message
Message :: Text -> Message
[$sel:text:Message] :: Message -> Text
class HasMessage a
message :: HasMessage a => Lens' a Message
class FromMessage a
fromMessage :: FromMessage a => Message -> a
instance Data.String.IsString GitHub.Workflow.Command.Syntax.Message.Message
instance GHC.Show.Show GitHub.Workflow.Command.Syntax.Message.Message
instance GHC.Classes.Ord GitHub.Workflow.Command.Syntax.Message.Message
instance GHC.Classes.Eq GitHub.Workflow.Command.Syntax.Message.Message
instance GitHub.Workflow.Command.Syntax.Message.FromMessage GitHub.Workflow.Command.Syntax.Message.Message
instance GitHub.Workflow.Command.Syntax.Message.HasMessage GitHub.Workflow.Command.Syntax.Message.Message
instance GitHub.Workflow.Command.Syntax.ToByteString.ToByteString GitHub.Workflow.Command.Syntax.Message.Message
module GitHub.Workflow.Command.Syntax.Key
newtype Key
Key :: Text -> Key
[$sel:text:Key] :: Key -> Text
instance Data.String.IsString GitHub.Workflow.Command.Syntax.Key.Key
instance GHC.Show.Show GitHub.Workflow.Command.Syntax.Key.Key
instance GHC.Classes.Ord GitHub.Workflow.Command.Syntax.Key.Key
instance GHC.Classes.Eq GitHub.Workflow.Command.Syntax.Key.Key
instance GitHub.Workflow.Command.Syntax.ToByteString.ToByteString GitHub.Workflow.Command.Syntax.Key.Key
module GitHub.Workflow.Command.Syntax.Value
newtype Value
Value :: Text -> Value
[$sel:text:Value] :: Value -> Text
instance Data.String.IsString GitHub.Workflow.Command.Syntax.Value.Value
instance GHC.Show.Show GitHub.Workflow.Command.Syntax.Value.Value
instance GHC.Classes.Ord GitHub.Workflow.Command.Syntax.Value.Value
instance GHC.Classes.Eq GitHub.Workflow.Command.Syntax.Value.Value
instance GitHub.Workflow.Command.Syntax.ToByteString.ToByteString GitHub.Workflow.Command.Syntax.Value.Value
module GitHub.Workflow.Command.Syntax.Properties
data Properties
class HasProperties a
properties :: HasProperties a => Lens' a Properties
class AddToProperties a
addToProperties :: AddToProperties a => a -> Properties -> Properties
property :: HasProperties a => Key -> Lens' a (Maybe Value)
empty :: Properties
null :: Properties -> Bool
instance GHC.Show.Show GitHub.Workflow.Command.Syntax.Properties.Properties
instance GHC.Classes.Ord GitHub.Workflow.Command.Syntax.Properties.Properties
instance GHC.Classes.Eq GitHub.Workflow.Command.Syntax.Properties.Properties
instance GitHub.Workflow.Command.Syntax.Properties.HasProperties GitHub.Workflow.Command.Syntax.Properties.Properties
instance GitHub.Workflow.Command.Syntax.ToByteString.ToByteString GitHub.Workflow.Command.Syntax.Properties.Properties
module GitHub.Workflow.Command.Syntax.Command
-- | A GitHub workflow command
--
-- A Command consists of:
--
--
--
-- Of these, only Name is always required. Some particular types
-- of command require a message or have restrictions on what properties
-- they support or require.
data Command
-- | Construct a minimal command with a command Name e.g. "warning"
-- or "error"
--
-- See the property and message lenses for other
-- information include in a command.
command :: Name -> Command
class ToCommand a
addToCommand :: ToCommand a => a -> Command -> Command
toCommand :: ToCommand a => a -> Command
newtype ByteStringViaCommand a
ByteStringViaCommand :: a -> ByteStringViaCommand a
instance GHC.Show.Show GitHub.Workflow.Command.Syntax.Command.Command
instance GHC.Classes.Ord GitHub.Workflow.Command.Syntax.Command.Command
instance GHC.Classes.Eq GitHub.Workflow.Command.Syntax.Command.Command
instance GitHub.Workflow.Command.Syntax.Command.ToCommand a => GitHub.Workflow.Command.Syntax.ToByteString.ToByteString (GitHub.Workflow.Command.Syntax.Command.ByteStringViaCommand a)
instance Data.String.IsString GitHub.Workflow.Command.Syntax.Command.Command
instance GitHub.Workflow.Command.Syntax.Name.HasName GitHub.Workflow.Command.Syntax.Command.Command
instance GitHub.Workflow.Command.Syntax.Message.HasMessage GitHub.Workflow.Command.Syntax.Command.Command
instance GitHub.Workflow.Command.Syntax.Properties.HasProperties GitHub.Workflow.Command.Syntax.Command.Command
instance GitHub.Workflow.Command.Syntax.ToByteString.ToByteString GitHub.Workflow.Command.Syntax.Command.Command
module GitHub.Workflow.Command.Syntax
-- | A GitHub workflow command
--
-- A Command consists of:
--
--
--
-- Of these, only Name is always required. Some particular types
-- of command require a message or have restrictions on what properties
-- they support or require.
data Command
-- | Construct a minimal command with a command Name e.g. "warning"
-- or "error"
--
-- See the property and message lenses for other
-- information include in a command.
command :: Name -> Command
class ToCommand a
addToCommand :: ToCommand a => a -> Command -> Command
toCommand :: ToCommand a => a -> Command
newtype Name
Name :: Text -> Name
[$sel:text:Name] :: Name -> Text
class HasName a
name :: HasName a => Lens' a Name
newtype Message
Message :: Text -> Message
[$sel:text:Message] :: Message -> Text
class HasMessage a
message :: HasMessage a => Lens' a Message
class FromMessage a
fromMessage :: FromMessage a => Message -> a
data Properties
newtype Key
Key :: Text -> Key
[$sel:text:Key] :: Key -> Text
newtype Value
Value :: Text -> Value
[$sel:text:Value] :: Value -> Text
property :: HasProperties a => Key -> Lens' a (Maybe Value)
class HasProperties a
properties :: HasProperties a => Lens' a Properties
class AddToProperties a
addToProperties :: AddToProperties a => a -> Properties -> Properties
class ToByteString a
toByteStringBuilder :: ToByteString a => a -> Builder
toByteString :: ToByteString a => a -> ByteString
newtype ByteStringViaCommand a
ByteStringViaCommand :: a -> ByteStringViaCommand a
printByteStringLn :: (ToByteString a, MonadIO m) => a -> m ()
module GitHub.Workflow.Command.Masking
-- | Prevents a string or variable from being printed in the log
--
-- GitHub documentation: Masking a value in a log
newtype AddMask
AddMask :: Text -> AddMask
-- | An environment variable or string
[$sel:value:AddMask] :: AddMask -> Text
instance GitHub.Workflow.Command.Syntax.Command.ToCommand GitHub.Workflow.Command.Masking.AddMask
module GitHub.Workflow.Command.Execution
-- | Monadic context in which GitHub workflow commands may be executed
--
--
-- - For the most basic uses, use the IO instance, which prints
-- commands to stdout.
-- - For custom monads that support MonadIO, you may derive
-- MonadCommand via PrintCommands to get the same behavior
-- that IO exhibits.
-- - A program that wishes to accommodate running in both GitHub and
-- non-GitHub contexts may wish to define a more sophisicated
-- MonadCommand instance that prints GitHub workflow commands only
-- when the GITHUB_ACTIONS environment variable is present, and
-- otherwise takes some other more context-appropriate action.
--
class Monad m => MonadCommand m
executeCommand :: (MonadCommand m, ToCommand a) => a -> m ()
newtype PrintCommands m a
PrintCommands :: m a -> PrintCommands m a
instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (GitHub.Workflow.Command.Execution.PrintCommands m)
instance GHC.Base.Monad m => GHC.Base.Monad (GitHub.Workflow.Command.Execution.PrintCommands m)
instance GHC.Base.Applicative m => GHC.Base.Applicative (GitHub.Workflow.Command.Execution.PrintCommands m)
instance GHC.Base.Functor m => GHC.Base.Functor (GitHub.Workflow.Command.Execution.PrintCommands m)
instance Control.Monad.IO.Class.MonadIO m => GitHub.Workflow.Command.Execution.MonadCommand (GitHub.Workflow.Command.Execution.PrintCommands m)
instance GitHub.Workflow.Command.Execution.MonadCommand GHC.Types.IO
module GitHub.Workflow.Command.Stopping
-- | Run an action with processing of workflow commands suspended
--
-- GitHub documentation: Stopping and starting workflow commands
suspendCommands :: (MonadCommand m, MonadRandom m) => m a -> m a
-- | Stops processing any workflow commands
--
-- This special command allows you to log anything without accidentally
-- running a workflow command.
stopCommands :: (MonadCommand m, MonadRandom m) => m SuspendToken
-- | Resume processing workflow commands
resumeCommands :: MonadCommand m => SuspendToken -> m ()
newtype SuspendToken
SuspendToken :: Text -> SuspendToken
randomSuspendToken :: MonadRandom m => m SuspendToken
suspendCommandsWithToken :: MonadCommand m => SuspendToken -> m a -> m a
stopCommandsWithToken :: MonadCommand m => SuspendToken -> m ()
newtype StopCommands
StopCommands :: SuspendToken -> StopCommands
[$sel:token:StopCommands] :: StopCommands -> SuspendToken
newtype ResumeCommands
ResumeCommands :: SuspendToken -> ResumeCommands
[$sel:token:ResumeCommands] :: ResumeCommands -> SuspendToken
instance GitHub.Workflow.Command.Syntax.Command.ToCommand GitHub.Workflow.Command.Stopping.ResumeCommands
instance GitHub.Workflow.Command.Syntax.Command.ToCommand GitHub.Workflow.Command.Stopping.StopCommands
module GitHub.Workflow.Command.Grouping
-- | Creates an expandable group in the log
--
-- GitHub documentation: Grouping log lines
group :: MonadCommand m => Text -> m a -> m a
-- | Starts a group
newtype GroupStart
GroupStart :: Text -> GroupStart
[$sel:title:GroupStart] :: GroupStart -> Text
-- | Ends a group
data GroupEnd
GroupEnd :: GroupEnd
instance GitHub.Workflow.Command.Syntax.Command.ToCommand GitHub.Workflow.Command.Grouping.GroupEnd
instance GitHub.Workflow.Command.Syntax.Command.ToCommand GitHub.Workflow.Command.Grouping.GroupStart
module GitHub.Workflow.Command.Annotation.Position.Line
newtype Line
Line :: Natural -> Line
[$sel:natural:Line] :: Line -> Natural
lineText :: Line -> Text
lineValue :: Line -> Value
instance GHC.Num.Num GitHub.Workflow.Command.Annotation.Position.Line.Line
instance GHC.Show.Show GitHub.Workflow.Command.Annotation.Position.Line.Line
instance GHC.Classes.Ord GitHub.Workflow.Command.Annotation.Position.Line.Line
instance GHC.Classes.Eq GitHub.Workflow.Command.Annotation.Position.Line.Line
module GitHub.Workflow.Command.Annotation.Position.Column
newtype Column
Column :: Natural -> Column
[$sel:natural:Column] :: Column -> Natural
columnText :: Column -> Text
columnValue :: Column -> Value
instance GHC.Num.Num GitHub.Workflow.Command.Annotation.Position.Column.Column
instance GHC.Show.Show GitHub.Workflow.Command.Annotation.Position.Column.Column
instance GHC.Classes.Ord GitHub.Workflow.Command.Annotation.Position.Column.Column
instance GHC.Classes.Eq GitHub.Workflow.Command.Annotation.Position.Column.Column
module GitHub.Workflow.Command.Annotation.Position.Columns
data Columns
Columns :: Column -> Maybe Column -> Columns
[$sel:start:Columns] :: Columns -> Column
[$sel:end:Columns] :: Columns -> Maybe Column
atColumn :: Column -> Columns
startColumn :: Lens' Columns Column
endColumn :: Lens' Columns (Maybe Column)
instance GitHub.Workflow.Command.Syntax.Properties.AddToProperties GitHub.Workflow.Command.Annotation.Position.Columns.Columns
module GitHub.Workflow.Command.Annotation.Position.Extent
-- | Extra positional data, as a modification to the start Line
data Extent
WithinLine :: Columns -> Extent
ToLine :: Line -> Extent
instance GitHub.Workflow.Command.Syntax.Properties.AddToProperties GitHub.Workflow.Command.Annotation.Position.Extent.Extent
module GitHub.Workflow.Command.Annotation.Position
-- | Where an annotation is marked within a file
data Position
Position :: Line -> Maybe Extent -> Position
[$sel:line:Position] :: Position -> Line
[$sel:extent:Position] :: Position -> Maybe Extent
line :: Lens' Position Line
extent :: Lens' Position (Maybe Extent)
atLine :: Line -> Position
instance GitHub.Workflow.Command.Syntax.Properties.AddToProperties GitHub.Workflow.Command.Annotation.Position.Position
module GitHub.Workflow.Command.Annotation.File
newtype File
File :: Text -> File
[$sel:text:File] :: File -> Text
fileValue :: File -> Value
instance Data.String.IsString GitHub.Workflow.Command.Annotation.File.File
instance GHC.Show.Show GitHub.Workflow.Command.Annotation.File.File
instance GHC.Classes.Ord GitHub.Workflow.Command.Annotation.File.File
instance GHC.Classes.Eq GitHub.Workflow.Command.Annotation.File.File
module GitHub.Workflow.Command.Annotation.Location
data Location
Location :: File -> Maybe Position -> Location
-- | The path of the file for which the annotation should be created
[$sel:file:Location] :: Location -> File
[$sel:position:Location] :: Location -> Maybe Position
class HasLocationMaybe a
location :: HasLocationMaybe a => Lens' a (Maybe Location)
file :: Lens' Location File
position :: Lens' Location (Maybe Position)
inFile :: File -> Location
instance GitHub.Workflow.Command.Annotation.Location.HasLocationMaybe (GHC.Maybe.Maybe GitHub.Workflow.Command.Annotation.Location.Location)
instance Data.String.IsString GitHub.Workflow.Command.Annotation.Location.Location
instance GitHub.Workflow.Command.Syntax.Properties.AddToProperties GitHub.Workflow.Command.Annotation.Location.Location
module GitHub.Workflow.Command.Annotation.Properties
data Properties
Properties :: Maybe Text -> Maybe Location -> Properties
-- | A title for the annotation
[$sel:title:Properties] :: Properties -> Maybe Text
[$sel:location:Properties] :: Properties -> Maybe Location
class HasProperties a
annotationProperties :: HasProperties a => Lens' a Properties
class GetProperties a
getProperties :: GetProperties a => a -> Properties
empty :: Properties
instance GitHub.Workflow.Command.Annotation.Properties.GetProperties GitHub.Workflow.Command.Annotation.Properties.Properties
instance GitHub.Workflow.Command.Annotation.Properties.HasProperties GitHub.Workflow.Command.Annotation.Properties.Properties
instance GitHub.Workflow.Command.Annotation.Location.HasLocationMaybe GitHub.Workflow.Command.Annotation.Properties.Properties
instance GitHub.Workflow.Command.Syntax.Properties.AddToProperties GitHub.Workflow.Command.Annotation.Properties.Properties
module GitHub.Workflow.Command.Annotation.Commands.Generic
newtype GenericAnnotation a
GenericAnnotation :: a -> GenericAnnotation a
class IsAnnotationType a
annotationTypeName :: IsAnnotationType a => Name
instance GitHub.Workflow.Command.Syntax.Command.ToCommand a => GitHub.Workflow.Command.Syntax.ToByteString.ToByteString (GitHub.Workflow.Command.Annotation.Commands.Generic.GenericAnnotation a)
instance (GitHub.Workflow.Command.Annotation.Commands.Generic.IsAnnotationType a, GitHub.Workflow.Command.Syntax.Message.HasMessage a, GitHub.Workflow.Command.Annotation.Properties.GetProperties a) => GitHub.Workflow.Command.Syntax.Command.ToCommand (GitHub.Workflow.Command.Annotation.Commands.Generic.GenericAnnotation a)
instance GitHub.Workflow.Command.Annotation.Properties.HasProperties a => GitHub.Workflow.Command.Annotation.Location.HasLocationMaybe (GitHub.Workflow.Command.Annotation.Commands.Generic.GenericAnnotation a)
module GitHub.Workflow.Command.Annotation.Commands.Warning
warning :: Message -> Warning
-- | Creates a warning message and prints the message to the log
--
-- The message can be associated with a particular file in your
-- repository, and optionally also a position within the file. See
-- HasLocationMaybe.
--
-- GitHub documentation: Setting a warning message
data Warning
Warning :: Message -> Properties -> Warning
[$sel:message:Warning] :: Warning -> Message
[$sel:properties:Warning] :: Warning -> Properties
instance GitHub.Workflow.Command.Syntax.Command.ToCommand GitHub.Workflow.Command.Annotation.Commands.Warning.Warning
instance GitHub.Workflow.Command.Syntax.ToByteString.ToByteString GitHub.Workflow.Command.Annotation.Commands.Warning.Warning
instance GitHub.Workflow.Command.Annotation.Commands.Generic.IsAnnotationType GitHub.Workflow.Command.Annotation.Commands.Warning.Warning
instance GitHub.Workflow.Command.Syntax.Message.HasMessage GitHub.Workflow.Command.Annotation.Commands.Warning.Warning
instance GitHub.Workflow.Command.Annotation.Properties.HasProperties GitHub.Workflow.Command.Annotation.Commands.Warning.Warning
instance GitHub.Workflow.Command.Annotation.Location.HasLocationMaybe GitHub.Workflow.Command.Annotation.Commands.Warning.Warning
instance GitHub.Workflow.Command.Syntax.Message.FromMessage GitHub.Workflow.Command.Annotation.Commands.Warning.Warning
instance GitHub.Workflow.Command.Annotation.Properties.GetProperties GitHub.Workflow.Command.Annotation.Commands.Warning.Warning
module GitHub.Workflow.Command.Annotation.Commands.Notice
notice :: Message -> Notice
-- | Creates a notice message and prints the message to the log
--
-- The message can be associated with a particular file in your
-- repository, and optionally also a position within the file. See
-- HasLocationMaybe.
--
-- GitHub documentation: Setting a notice message
data Notice
Notice :: Message -> Properties -> Notice
[$sel:message:Notice] :: Notice -> Message
[$sel:properties:Notice] :: Notice -> Properties
instance GitHub.Workflow.Command.Syntax.Command.ToCommand GitHub.Workflow.Command.Annotation.Commands.Notice.Notice
instance GitHub.Workflow.Command.Syntax.ToByteString.ToByteString GitHub.Workflow.Command.Annotation.Commands.Notice.Notice
instance GitHub.Workflow.Command.Annotation.Commands.Generic.IsAnnotationType GitHub.Workflow.Command.Annotation.Commands.Notice.Notice
instance GitHub.Workflow.Command.Syntax.Message.HasMessage GitHub.Workflow.Command.Annotation.Commands.Notice.Notice
instance GitHub.Workflow.Command.Annotation.Properties.HasProperties GitHub.Workflow.Command.Annotation.Commands.Notice.Notice
instance GitHub.Workflow.Command.Annotation.Location.HasLocationMaybe GitHub.Workflow.Command.Annotation.Commands.Notice.Notice
instance GitHub.Workflow.Command.Annotation.Properties.GetProperties GitHub.Workflow.Command.Annotation.Commands.Notice.Notice
instance GitHub.Workflow.Command.Syntax.Message.FromMessage GitHub.Workflow.Command.Annotation.Commands.Notice.Notice
module GitHub.Workflow.Command.Annotation.Commands.Error
error :: Message -> Error
-- | Creates an error message and prints the message to the log
--
-- The message can be associated with a particular file in your
-- repository, and optionally also a position within the file. See
-- HasLocationMaybe.
--
-- GitHub documentation: Setting an error message
data Error
Error :: Message -> Properties -> Error
[$sel:message:Error] :: Error -> Message
[$sel:properties:Error] :: Error -> Properties
instance GitHub.Workflow.Command.Syntax.Command.ToCommand GitHub.Workflow.Command.Annotation.Commands.Error.Error
instance GitHub.Workflow.Command.Syntax.ToByteString.ToByteString GitHub.Workflow.Command.Annotation.Commands.Error.Error
instance GitHub.Workflow.Command.Annotation.Commands.Generic.IsAnnotationType GitHub.Workflow.Command.Annotation.Commands.Error.Error
instance GitHub.Workflow.Command.Syntax.Message.HasMessage GitHub.Workflow.Command.Annotation.Commands.Error.Error
instance GitHub.Workflow.Command.Annotation.Properties.HasProperties GitHub.Workflow.Command.Annotation.Commands.Error.Error
instance GitHub.Workflow.Command.Annotation.Location.HasLocationMaybe GitHub.Workflow.Command.Annotation.Commands.Error.Error
instance GitHub.Workflow.Command.Syntax.Message.FromMessage GitHub.Workflow.Command.Annotation.Commands.Error.Error
instance GitHub.Workflow.Command.Annotation.Properties.GetProperties GitHub.Workflow.Command.Annotation.Commands.Error.Error
module GitHub.Workflow.Command.Annotation.Commands.Debug
debug :: Message -> Debug
-- | Prints a debug message to the log
--
-- GitHub documentation: Setting a debug message
newtype Debug
Debug :: Message -> Debug
[$sel:message:Debug] :: Debug -> Message
instance GitHub.Workflow.Command.Syntax.Command.ToCommand GitHub.Workflow.Command.Annotation.Commands.Debug.Debug
instance GitHub.Workflow.Command.Syntax.ToByteString.ToByteString GitHub.Workflow.Command.Annotation.Commands.Debug.Debug
instance GitHub.Workflow.Command.Annotation.Commands.Generic.IsAnnotationType GitHub.Workflow.Command.Annotation.Commands.Debug.Debug
instance GitHub.Workflow.Command.Syntax.Message.HasMessage GitHub.Workflow.Command.Annotation.Commands.Debug.Debug
instance GitHub.Workflow.Command.Syntax.Message.FromMessage GitHub.Workflow.Command.Annotation.Commands.Debug.Debug
instance GitHub.Workflow.Command.Annotation.Properties.GetProperties GitHub.Workflow.Command.Annotation.Commands.Debug.Debug
module GitHub.Workflow.Command.Annotation
debug :: Message -> Debug
-- | Prints a debug message to the log
--
-- GitHub documentation: Setting a debug message
newtype Debug
Debug :: Message -> Debug
[$sel:message:Debug] :: Debug -> Message
error :: Message -> Error
-- | Creates an error message and prints the message to the log
--
-- The message can be associated with a particular file in your
-- repository, and optionally also a position within the file. See
-- HasLocationMaybe.
--
-- GitHub documentation: Setting an error message
data Error
Error :: Message -> Properties -> Error
[$sel:message:Error] :: Error -> Message
[$sel:properties:Error] :: Error -> Properties
warning :: Message -> Warning
-- | Creates a warning message and prints the message to the log
--
-- The message can be associated with a particular file in your
-- repository, and optionally also a position within the file. See
-- HasLocationMaybe.
--
-- GitHub documentation: Setting a warning message
data Warning
Warning :: Message -> Properties -> Warning
[$sel:message:Warning] :: Warning -> Message
[$sel:properties:Warning] :: Warning -> Properties
notice :: Message -> Notice
-- | Creates a notice message and prints the message to the log
--
-- The message can be associated with a particular file in your
-- repository, and optionally also a position within the file. See
-- HasLocationMaybe.
--
-- GitHub documentation: Setting a notice message
data Notice
Notice :: Message -> Properties -> Notice
[$sel:message:Notice] :: Notice -> Message
[$sel:properties:Notice] :: Notice -> Properties
newtype Message
Message :: Text -> Message
[$sel:text:Message] :: Message -> Text
class FromMessage a
fromMessage :: FromMessage a => Message -> a
data Properties
Properties :: Maybe Text -> Maybe Location -> Properties
-- | A title for the annotation
[$sel:title:Properties] :: Properties -> Maybe Text
[$sel:location:Properties] :: Properties -> Maybe Location
data Location
Location :: File -> Maybe Position -> Location
-- | The path of the file for which the annotation should be created
[$sel:file:Location] :: Location -> File
[$sel:position:Location] :: Location -> Maybe Position
class HasLocationMaybe a
location :: HasLocationMaybe a => Lens' a (Maybe Location)
newtype File
File :: Text -> File
[$sel:text:File] :: File -> Text
inFile :: File -> Location
file :: Lens' Location File
-- | Where an annotation is marked within a file
data Position
Position :: Line -> Maybe Extent -> Position
[$sel:line:Position] :: Position -> Line
[$sel:extent:Position] :: Position -> Maybe Extent
position :: Lens' Location (Maybe Position)
-- | Extra positional data, as a modification to the start Line
data Extent
WithinLine :: Columns -> Extent
ToLine :: Line -> Extent
extent :: Lens' Position (Maybe Extent)
data Columns
Columns :: Column -> Maybe Column -> Columns
[$sel:start:Columns] :: Columns -> Column
[$sel:end:Columns] :: Columns -> Maybe Column
line :: Lens' Position Line
startColumn :: Lens' Columns Column
endColumn :: Lens' Columns (Maybe Column)
newtype Line
Line :: Natural -> Line
[$sel:natural:Line] :: Line -> Natural
atLine :: Line -> Position
newtype Column
Column :: Natural -> Column
[$sel:natural:Column] :: Column -> Natural
atColumn :: Column -> Columns
-- | Monadic context in which GitHub workflow commands may be executed
--
--
-- - For the most basic uses, use the IO instance, which prints
-- commands to stdout.
-- - For custom monads that support MonadIO, you may derive
-- MonadCommand via PrintCommands to get the same behavior
-- that IO exhibits.
-- - A program that wishes to accommodate running in both GitHub and
-- non-GitHub contexts may wish to define a more sophisicated
-- MonadCommand instance that prints GitHub workflow commands only
-- when the GITHUB_ACTIONS environment variable is present, and
-- otherwise takes some other more context-appropriate action.
--
class Monad m => MonadCommand m
executeCommand :: (MonadCommand m, ToCommand a) => a -> m ()
class ToCommand a
addToCommand :: ToCommand a => a -> Command -> Command
toCommand :: ToCommand a => a -> Command
class ToByteString a
toByteStringBuilder :: ToByteString a => a -> Builder
toByteString :: ToByteString a => a -> ByteString
printByteStringLn :: (ToByteString a, MonadIO m) => a -> m ()
-- | Programs run by GitHub Actions can use workflow commands to
-- communicate with the runner.
--
-- GitHub documentation: Workflow commands for GitHub Actions
module GitHub.Workflow.Command
-- | Monadic context in which GitHub workflow commands may be executed
--
--
-- - For the most basic uses, use the IO instance, which prints
-- commands to stdout.
-- - For custom monads that support MonadIO, you may derive
-- MonadCommand via PrintCommands to get the same behavior
-- that IO exhibits.
-- - A program that wishes to accommodate running in both GitHub and
-- non-GitHub contexts may wish to define a more sophisicated
-- MonadCommand instance that prints GitHub workflow commands only
-- when the GITHUB_ACTIONS environment variable is present, and
-- otherwise takes some other more context-appropriate action.
--
class Monad m => MonadCommand m
executeCommand :: (MonadCommand m, ToCommand a) => a -> m ()
newtype PrintCommands m a
PrintCommands :: m a -> PrintCommands m a
class ToCommand a
addToCommand :: ToCommand a => a -> Command -> Command
-- | Prints a debug message to the log
--
-- GitHub documentation: Setting a debug message
newtype Debug
Debug :: Message -> Debug
[$sel:message:Debug] :: Debug -> Message
debug :: Message -> Debug
-- | Creates a notice message and prints the message to the log
--
-- The message can be associated with a particular file in your
-- repository, and optionally also a position within the file. See
-- HasLocationMaybe.
--
-- GitHub documentation: Setting a notice message
data Notice
Notice :: Message -> Properties -> Notice
[$sel:message:Notice] :: Notice -> Message
[$sel:properties:Notice] :: Notice -> Properties
notice :: Message -> Notice
-- | Creates a warning message and prints the message to the log
--
-- The message can be associated with a particular file in your
-- repository, and optionally also a position within the file. See
-- HasLocationMaybe.
--
-- GitHub documentation: Setting a warning message
data Warning
Warning :: Message -> Properties -> Warning
[$sel:message:Warning] :: Warning -> Message
[$sel:properties:Warning] :: Warning -> Properties
warning :: Message -> Warning
-- | Creates an error message and prints the message to the log
--
-- The message can be associated with a particular file in your
-- repository, and optionally also a position within the file. See
-- HasLocationMaybe.
--
-- GitHub documentation: Setting an error message
data Error
Error :: Message -> Properties -> Error
[$sel:message:Error] :: Error -> Message
[$sel:properties:Error] :: Error -> Properties
error :: Message -> Error
-- | Creates an expandable group in the log
--
-- GitHub documentation: Grouping log lines
group :: MonadCommand m => Text -> m a -> m a
-- | Starts a group
newtype GroupStart
GroupStart :: Text -> GroupStart
[$sel:title:GroupStart] :: GroupStart -> Text
-- | Ends a group
data GroupEnd
GroupEnd :: GroupEnd
-- | Prevents a string or variable from being printed in the log
--
-- GitHub documentation: Masking a value in a log
newtype AddMask
AddMask :: Text -> AddMask
-- | An environment variable or string
[$sel:value:AddMask] :: AddMask -> Text
-- | Run an action with processing of workflow commands suspended
--
-- GitHub documentation: Stopping and starting workflow commands
suspendCommands :: (MonadCommand m, MonadRandom m) => m a -> m a
-- | Stops processing any workflow commands
--
-- This special command allows you to log anything without accidentally
-- running a workflow command.
stopCommands :: (MonadCommand m, MonadRandom m) => m SuspendToken
-- | Resume processing workflow commands
resumeCommands :: MonadCommand m => SuspendToken -> m ()
data SuspendToken
data Location
Location :: File -> Maybe Position -> Location
-- | The path of the file for which the annotation should be created
[$sel:file:Location] :: Location -> File
[$sel:position:Location] :: Location -> Maybe Position
class HasLocationMaybe a
location :: HasLocationMaybe a => Lens' a (Maybe Location)
newtype File
File :: Text -> File
[$sel:text:File] :: File -> Text
inFile :: File -> Location
file :: Lens' Location File
-- | Where an annotation is marked within a file
data Position
Position :: Line -> Maybe Extent -> Position
[$sel:line:Position] :: Position -> Line
[$sel:extent:Position] :: Position -> Maybe Extent
position :: Lens' Location (Maybe Position)
-- | Extra positional data, as a modification to the start Line
data Extent
WithinLine :: Columns -> Extent
ToLine :: Line -> Extent
extent :: Lens' Position (Maybe Extent)
data Columns
Columns :: Column -> Maybe Column -> Columns
[$sel:start:Columns] :: Columns -> Column
[$sel:end:Columns] :: Columns -> Maybe Column
line :: Lens' Position Line
startColumn :: Lens' Columns Column
endColumn :: Lens' Columns (Maybe Column)
newtype Line
Line :: Natural -> Line
[$sel:natural:Line] :: Line -> Natural
atLine :: Line -> Position
newtype Column
Column :: Natural -> Column
[$sel:natural:Column] :: Column -> Natural
atColumn :: Column -> Columns
-- | A GitHub workflow command
--
-- A Command consists of:
--
--
--
-- Of these, only Name is always required. Some particular types
-- of command require a message or have restrictions on what properties
-- they support or require.
data Command
newtype Name
Name :: Text -> Name
[$sel:text:Name] :: Name -> Text
class HasName a
name :: HasName a => Lens' a Name
newtype Message
Message :: Text -> Message
[$sel:text:Message] :: Message -> Text
class HasMessage a
message :: HasMessage a => Lens' a Message
data Properties
class HasProperties a
properties :: HasProperties a => Lens' a Properties
newtype Key
Key :: Text -> Key
[$sel:text:Key] :: Key -> Text
newtype Value
Value :: Text -> Value
[$sel:text:Value] :: Value -> Text