Modernize to hubot 14 (ESM)

- hubot 14.1.0; @hubot-friends/hubot-irc ^2.0.2; hubot-redis-brain 3.0.1
  (exact pin); hubot-help ^2.1.5; hubot-remotestorage-logger (git branch)
- drop hubot-irc, coffee-script, request, hubot-web-push-notifications, and the
  unused hubot-xmpp / hubot-incoming-webhook / hubot-auth / cheerio (they drag
  in node-xmpp-client, request and coffee-script)
- scripts/health.js -> ESM; delete scripts/example.coffee
- external-scripts.json: hubot-help, hubot-redis-brain,
  hubot-remotestorage-logger
- Procfile / run.sh: -a @hubot-friends/hubot-irc

The hubot-remotestorage-logger dep points at the feature/hubot-14 branch until
67P/hubot-remotestorage-logger#5 is merged and v2.0.0 is tagged on master.
This commit is contained in:
raucao committed 2026-10-27 23:16:23 +04:00
1 parent 63f80a3fb2
commit ee836fdb2b
7 files changed
+1772 -3070

No files matched your search

+1 -1
View File
@@ -1 +1 @@
web: bin/hubot -a irc
web: bin/hubot -a @hubot-friends/hubot-irc
+1 -2
View File
@@ -1,6 +1,5 @@
[
"hubot-help",
"hubot-remotestorage-logger",
"hubot-redis-brain",
"hubot-web-push-notifications"
"hubot-remotestorage-logger"
]
+1753 -2941
View File
File diff suppressed because it is too large. Load diff
+7 -13
View File
@@ -2,22 +2,16 @@
"name": "botka",
"version": "0.8.1",
"private": true,
"type": "module",
"author": [
"Kosmos Contributors <mail@kosmos.org> (https://kosmos.org)"
],
"description": "Heuristically programmed ALgorithmic computer",
"description": "Kosmos Chat doggo",
"dependencies": {
"cheerio": "0.22.0",
"coffee-script": "^1.9.2",
"hubot": "^3.3.2",
"hubot-auth": "^1.2.0",
"hubot-help": "^1.0.1",
"hubot-incoming-webhook": "^1.1.1",
"hubot-irc": "github:67P/hubot-irc#deploy",
"hubot-redis-brain": "~1.0.0",
"hubot-remotestorage-logger": "^1.3.0",
"hubot-web-push-notifications": "^1.2.0",
"hubot-xmpp": "github:67P/hubot-xmpp#dev",
"request": "2.88.2"
"@hubot-friends/hubot-irc": "^2.0.2",
"hubot": "14.1.0",
"hubot-help": "^2.1.5",
"hubot-redis-brain": "3.0.1",
"hubot-remotestorage-logger": "github:67P/hubot-remotestorage-logger#feature/hubot-14"
}
}
+1 -4
View File
@@ -18,7 +18,4 @@ RS_LOGGER_USER="kosmos@5apps.com" \
RS_LOGGER_TOKEN="change-me" \
RS_LOGGER_PUBLIC="true" \
WEBHOOK_TOKEN="kosmosplusplus" \
VAPID_SUBJECT="https://example.com" \
VAPID_PUBLIC_KEY="" \
VAPID_PRIVATE_KEY="" \
bin/hubot -a irc --name botka_dev
bin/hubot -a @hubot-friends/hubot-irc --name botka_dev
-106
View File
@@ -1,106 +0,0 @@
# Description:
# Example scripts for you to examine and try out.
#
# Notes:
# They are commented out by default, because most of them are pretty silly and
# wouldn't be useful and amusing enough for day to day huboting.
# Uncomment the ones you want to try and experiment with.
#
# These are from the scripting documentation: https://github.com/github/hubot/blob/master/docs/scripting.md
module.exports = (robot) ->
# robot.hear /badger/i, (res) ->
# res.send "Badgers? BADGERS? WE DON'T NEED NO STINKIN BADGERS"
#
# robot.respond /open the (.*) doors/i, (res) ->
# doorType = res.match[1]
# if doorType is "pod bay"
# res.reply "I'm afraid I can't let you do that."
# else
# res.reply "Opening #{doorType} doors"
#
# robot.hear /I like pie/i, (res) ->
# res.emote "makes a freshly baked pie"
#
# lulz = ['lol', 'rofl', 'lmao']
#
# robot.respond /lulz/i, (res) ->
# res.send res.random lulz
#
# robot.topic (res) ->
# res.send "#{res.message.text}? That's a Paddlin'"
#
#
# enterReplies = ['Hi', 'Target Acquired', 'Firing', 'Hello friend.', 'Gotcha', 'I see you']
# leaveReplies = ['Are you still there?', 'Target lost', 'Searching']
#
# robot.enter (res) ->
# res.send res.random enterReplies
# robot.leave (res) ->
# res.send res.random leaveReplies
#
# answer = process.env.HUBOT_ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING
#
# robot.respond /what is the answer to the ultimate question of life/, (res) ->
# unless answer?
# res.send "Missing HUBOT_ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING in environment: please set and try again"
# return
# res.send "#{answer}, but what is the question?"
#
# robot.respond /you are a little slow/, (res) ->
# setTimeout () ->
# res.send "Who you calling 'slow'?"
# , 60 * 1000
#
# annoyIntervalId = null
#
# robot.respond /annoy me/, (res) ->
# if annoyIntervalId
# res.send "AAAAAAAAAAAEEEEEEEEEEEEEEEEEEEEEEEEIIIIIIIIHHHHHHHHHH"
# return
#
# res.send "Hey, want to hear the most annoying sound in the world?"
# annoyIntervalId = setInterval () ->
# res.send "AAAAAAAAAAAEEEEEEEEEEEEEEEEEEEEEEEEIIIIIIIIHHHHHHHHHH"
# , 1000
#
# robot.respond /unannoy me/, (res) ->
# if annoyIntervalId
# res.send "GUYS, GUYS, GUYS!"
# clearInterval(annoyIntervalId)
# annoyIntervalId = null
# else
# res.send "Not annoying you right now, am I?"
#
#
# robot.router.post '/hubot/chatsecrets/:room', (req, res) ->
# room = req.params.room
# data = JSON.parse req.body.payload
# secret = data.secret
#
# robot.messageRoom room, "I have a secret: #{secret}"
#
# res.send 'OK'
#
# robot.error (err, res) ->
# robot.logger.error "DOES NOT COMPUTE"
#
# if res?
# res.reply "DOES NOT COMPUTE"
#
# robot.respond /have a soda/i, (res) ->
# # Get number of sodas had (coerced to a number).
# sodasHad = robot.brain.get('totalSodas') * 1 or 0
#
# if sodasHad > 4
# res.reply "I'm too fizzy.."
#
# else
# res.reply 'Sure!'
#
# robot.brain.set 'totalSodas', sodasHad+1
#
# robot.respond /sleep it off/i, (res) ->
# robot.brain.set 'totalSodas', 0
# res.reply 'zzzzz'
+9 -3
View File
@@ -1,5 +1,11 @@
module.exports = function (robot) {
// Description:
// Liveness/health endpoint for the HTTP server.
//
// Commands:
// None
export default function (robot) {
robot.router.get('/health/live', (req, res) => {
res.send('OK');
});
res.send('OK')
})
}