Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
hubot-schedule
Advanced tools
hubot-schedule is a message scheduler runs on hubot.
It allows you to schedule a message in both cron-style
and datetime-based
format pattern.
It is for time-based scheduling, not interval-based scheduling.
Since hubot-schedule uses node-schedule to manage schedule, some of the cron features are not supported. Please see node-schedule for more details.
This script is greatly inspired by hubot-cron. At first, I wanted a datetime-based scheduler. As I start developing this, I noticed that node-schedule also suppports cron-style scheduling, so I changed my mind to develop a scheduler that supports both cron-style and datetime-based format.
If you are using slack adapter such as hubot-slack
, please use v4.2.2
or later.
v4.2.1
sometimes fails to add new schedule.
Add hubot-schedule
to your package.json
.
"dependencies": {
"hubot-schedule": "~0.7.0"
}
Run npm install
.
$ npm install
Add hubot-schedule
to external-scripts.json
.
> cat external-scripts.json
> ["hubot-schedule"]
Hubot> hubot help schedule
Hubot schedule [add|new] "<cron pattern>(,<utc offset>)" <message> - Schedule a message that runs recurrently
Hubot schedule [add|new] "<datetime pattern>" <message> - Schedule a message that runs on a specific date and time
Hubot schedule [add|new] #<room> "<cron pattern>(,<utc offset>)" <message> - Schedule a message to a specific room that runs recurrently
Hubot schedule [add|new] #<room> "<datetime pattern>" <message> - Schedule a message to a specific room that runs on a specific date and time
Hubot schedule [cancel|del|delete|remove] <id> - Cancel the schedule
Hubot schedule [upd|update] <id> <message> - Update scheduled message
Hubot schedule env - Show hubot schedule environments
Hubot schedule list #<room> - List all scheduled messages for specified room
Hubot schedule list - List all scheduled messages for current room
Hubot schedule list all - List all scheduled messages for any rooms
Hubot> hubot schedule add "2015-01-16 10:00" Let's release this script!
6738: Schedule created
Hubot> hubot schedule add "0 10 * * 1-5" Don't forget to brew coffee :)
9735: Schedule created
Hubot> hubot schedule list
6738: [ 2015-01-16 10:00:00 +09:00 ] #Shell Let's release this script!
9735: [ 0 10 * * 1-5 ] #Shell Don't forget to brew coffee :)
Hubot> hubot schedule update 6738 Let's release this module and share with everyone!
6738: Scheduled message updated
Hubot> hubot schedule list
6738: [ 2015-01-16 10:00:00 +09:00 ] #Shell Let's release this script and share with everyone!
9735: [ 0 10 * * 1-5 ] #Shell Don't forget to brew coffee :)
Let's release this script and share with everyone!
(Hubot posts the message at 2015-01-16 10:00:00 and schedule will be removed automatically)
Hubot> hubot schedule del 9735
9735: Schedule canceled
Hubot> hubot schedule list
Message is not scheduled
Hubot> hubot schedule add "0 10 * * 1-5" hubot image me coffee
9735: Schedule created
(hubot can process messages sent by hubot-schedule, so you can ask hubot to do something at the scheduled time, like post an image of coffee.)
If you need to persist scheduled messages, use hubot-brain persistent module like hubot-redis-brain.
If OS timezone is set to Asia/Tokyo(UTC Offset would be "+09:00")
Hubot> hubot schedule env
DEBUG = false
DONT_RECEIVE = false
DENY_EXTERNAL_CONTROL = false
LIST_REPLACE_TEXT = {"@":"[@]"}
DEFAULT_UTC_OFFSET_FOR_CRON = "+09:00"
Hubot> hubot schedule add "2019-08-05 10:00 +02:00" use UTC Offset for datetime-based format pattern
2914: Schedule created
Hubot> hubot schedule add "0 10 * * 1-5, +02:00" use UTC Offset for cron-style format pattern
4291: Schedule created
Hubot> hubot schedule list
2914: [ 2019-08-05 17:00:00 +09:00 ] #Shell use UTC Offset for datetime-based format pattern (listed schedules are shown using OS timezone)
4291: [ 0 10 * * 1-5, +02:00 ] #Shell use UTC Offset for cron-style format pattern
Setting environment variable HUBOT_SCHEDULE_DEBUG=1
will show some debug messages.
Setting environment variable HUBOT_SCHEDULE_DENY_EXTERNAL_CONTROL=1
will deny schedule control from other rooms.
Setting environment variable HUBOT_SCHEDULE_DONT_RECEIVE=1
will disable hubot not to process messages sent by hubot-schedule.
Setting environment variable HUBOT_SCHEDULE_LIST_REPLACE_TEXT='<stringified json>'
will configure the text replacement used when listing scheduled messages.
Default configuration is '{"@":"[@]"}'
.
Setting environment variable HUBOT_SCHEDULE_UTC_OFFSET_FOR_CRON='<string format UTC Offset(e.g. "+09:00")>'
will set default UTC Offset for cron-style format pattern.
If not set, OS timezone's offset would be used.
Copyright 2015 Masakazu Matsushita.
Licensed under the MIT License.
FAQs
Message scheduler for hubot
The npm package hubot-schedule receives a total of 2 weekly downloads. As such, hubot-schedule popularity was classified as not popular.
We found that hubot-schedule demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.