Maintainer: @levb Co-Maintainer: @iomodo
A Mattermost plugin somewhat similar to pager duty, allows to have rotations with magic "solar lottery" scheduling, or overrides.
/lotto autopilot
Run autopilot.
Usage: /lotto autopilot [--flags]
.
Flags:
--now=datetime
- Run autopilot as if the time were datetime. Default: now./lotto rotation
Tools to manage rotations.
Usage: /lotto rotation <subcommand> <rotation-ID> [--flags]
.
Subcommands: archive - list - new - show - set autopilot | set fill | set limit | set require | set task
/lotto rotation new
Create a new rotation. Certain parameters can be specified only at creation time and may not be changed later.
Flags:
--beginning=datetime
- Beginning of time for shifts. Default: now.--fill-type=solar-lottery
- Task auto-assign type: only solar-lottery
is
currently supported.--fuzz int
- increase randomness of task assignment. Works by increasing the
user weight doubling time by this many periods. Setting it above 3 will
essentially make task assignemts random. Default: 0.--period=(weekly|biweekly|monthly)
- Recurrence period. For shifts, it is
directly relevant; for tasks it affects how the user weights are calculated
(shorter period leads to stricter rotation rules, much like lower fuzz).
Default: weekly
.--task-type=(shift|ticket)
- Currently, a rotation can only have shifts,
i.e. recurring tasks, or tickets that are submitted from an external source.
Default: shift
./lotto rotation archive
Archive a rotation.
/lotto rotation list
List active rotations.
/lotto rotation show
Show rotation details.
/lotto rotation set autopilot
Change rotation's autopilot settings.
Flags:
--off
- turns autopilot off for the rotation.--create
- automatically create new shifts.--create-prior=duration
- create new shifts this far ahead of their scheduled starts.--schedule
- automatically schedule pending tasks.--schedule-prior=duration
- schedule pending tasks this far ahead of their scheduled starts.--start-finish
- automatically start and finish shifts that are due.--remind-finish
- remind task users ahead ahead of its finish.--remind-finish-prior
- remind this far ahead of the task finish.--remind-start
- remind task users ahead of the start of a task.--remind-start-prior
- remind this far ahead of the task start./lotto rotation set fill
Change rotation's settings for filling (assigning users to) tasks.
Flags:
--fuzz
- adding fuzz slows down the exponential growth of idle users'
weights, by adding this many rotation periods to the doubling time./lotto rotation set limit
Change rotation's constraints (limits). A limit is like, "no more than 2 people
with knowledge of netops, intermediate plus. Use any
to indicate any
skill/level.
Flags:
--skill=skill-level[,...]
- specifies the skill and the minimum level that the limit applies to. skill can be any known skill, level is a number 1-4, or omit the -level to indicate that any level for the skill should count (same as setting to 1).--count=number
- specifies the limit for the skill.--clear
- clears the limit for the skill./lotto rotation set require
Change rotation's requirements (needs). A requirement is like, "at least 2
people with knowledge of netops, intermediate plus. Use any
to indicate any
skill/level.
Flags:
--skill=skill-level[,...]
- specifies the skill and the minimum level for the requirement. skill can be any known skill, level is a number 1-4, or omit the -level to indicate that any level for the skill should count (same as setting to 1).--count=number
- specifies how many users required for the skill.--clear
- clears the requirement for the skill./lotto rotation set task
Change rotation's defaults for new tasks.
Flags:
--duration
- sets the default duration for new tasks.--grace
- sets the default grace period for new tasks./lotto task
Tools to manage tasks.
Usage: /lotto task <subcommand> [<rotation-ID>|<task-ID>] [@user1 @user2...] [--flags]
.
Subcommands: assign - fill - finish - new shift - new ticket - schedule - show - start - unassign
/lotto task assign
Assign users to tasks.
Flags:
--force
- force assign: ignore the checks for the task's state and limits./lotto task fill
Auto-assign users to tasks to meet the requirements.
/lotto task finish
Transition a task to the finished
state.
/lotto task new shift
Create a new shift (i.e. recurring) task, sets its status to pending
.
Flags:
--number
- shift's period number to create, 0-based./lotto task new ticket
Create a new ticket (i.e. on-request) task, sets its status to pending
.
Flags:
--summary
- shift's period number to create, 0-based./lotto task finish
Transition a task to the finished
state.
/lotto task schedule
Transition a task to the scheduled
state.
/lotto task show
Display task's details
/lotto task unassign
Display task's details
/lotto user
Tools to manage the user settings and calendars.
Usage: /lotto user <subcommand> [@user1 @user2...] [--flags]
.
Subcommands: disqualify - join - leave - qualify - show - unavailable
/lotto user disqualify
Disqualify users from skills.
--skill=skill[,...]
- the skills to remove from the users' profiles (default: all)./lotto user join
Add user(s) to a rotation.
--starting=datetime
- specify the start time in the rotation. Setting it in the past will increase the users' weight immediately; setting it in the future will give the user a grace period until then. (default: all)./lotto user leave
Add user(s) to a rotation.
--starting=datetime
- specify the start time in the rotation. Setting it in the past will increase the users' weight immediately; setting it in the future will give the user a grace period until then. (default: all)./lotto user qualify
Qualify users for skills, with optional skill levels.
Flags:
--skill=skill-level[,...]
- qualifies the user for the skills, at the specified levels. The -level part is optional, is a number 1-4 corresponding to Beginner/Intermediate/Advanced/Expert (default: 1/beginner)./lotto user show
Show user records.
/lotto user unavailable
Add or clear times when user(s) are unavailable.
Flags:
--start=datetime
- start of the interval.--finish=datetime
- end of the interval.--clear
- clear all previous events overlapping with the date range.