v2.18.0 (2016-01-19)
Implemented enhancements:
- Only coerce ids that are all digits into integers #1052 (technicalpickles)
Closed issues:
- Allow for non-integer user id in the shell adapter. #1117
- Markdown syntax in docs/adapters.md preventing update of hubot.github.com #1100
- Possible Error in Docs #1096
- Propose adding Hubot-Mattermost to list of Hubot adapters #1089
- bug([email protected]): adapters don't run script #1086
- Depressing Pug Picture #1084
- Hubot - robot.http get method returns null body & res. Suspecting hubot timing out #1080
- Steam + Hubot #1076
- Hubot won't start on Heroku because of node modules #1071
- Documentation 404 #1064
- Can't make HTTP requests #1060
- Define and document testing patterns for scripts #985
Merged pull requests:
- Mattermost adapter #1120 (technicalpickles)
- Upgrade express to v3.21.2 #1119 (sgerrand)
- Fixed link to getting started #1116 (jackmawer)
- Fix http and https documentation #1114 (technicalpickles)
- [shell] don't color hubot responses green, to be more visible on light backgrounds #1111 ([technicalpickles](https://g ithub.com/technicalpickles))
- Determine adapterPath in robot.coffee, rather than bin/hubot #1109 ([technicalpickles](https://github.com/technicalpickl es))
- Updated copyright to 2016 #1103 (aqnouch)
- Update docs to reflect external scripts brain location #1101 (cycomachead)
- Added Twilio IP Messaging adapter to the list. #1099 (philnash)
- Add Skyweb to a list of adapters #1097 (EllisV)
- Instructions for deploying hubot to IBM Bluemix #1095 (kauffecup)
- Adding documentation for testing Hubot scripts #1094 (mdelagrange)
- Proxy instructions: typo + foolproof #1092 (jbick)
- Optionally use setImmediate instead of nextTick in middleware #1081 (bhuga)
Merged pull requests:
- Add node v5 to travis #1077 (@scboucher)
- Only loadScripts once #1069 (@technicalpickles)
- Response middleware #1021 (@bhuga)
- Debug listener options #1074 (@msabramo)
- Add Node 4.2 to travis #1068 (@scboucher)
- Clarify that a room token might be expected #1012 (@alininja)
- Fix link to heroku docs #1049 (@doque)
- Doc tweaks #1042 (@xuoe)
- Update Azure documentation #1041 (@davidkassa)
- Update slack adapter doc link #1039 (@danielcompton)
- Doc tweaks #1038 (@bhuga)
- Test tweaks #1037 (@michaelansel)
Merged pull requests:
- Update docs on keepalive support #1033 (@bkeepers)
- Cleanup tests #1032 (@michaelansel)
- Add coffee-errors to test scaffolding #1020 (@bhuga)
- Receive middleware #1019 (bhuga)
- Pass alias in Robot constructor. Fixes issue #1002. #1003 (@sdimkov)
- Add Robot.listen #986 (@michaelansel)
- Document another middleware pattern hubotio#1017
- Make Robot.respondPattern a public method hubotio#1011
- Make "done" argument optional for middleware hubotio#1028
- Lots of documentation tweaks and new adapters
- Added a code of conduct hubotio#1005
- Add Listener Middleware hubotio#803
- Minor documentation updates
- Add Robot.respondPattern private to improve testability hubotio#975
- Ignore .node-version so it isn't included in releases hubotio#980
- Fix documentation when running
hubot -c
to suggest correct usage of generator hubotio#938 - Fix respond listeners matching when robot alias is a substring of robot name hubotio#927
- Update bin/hubot to log a warning if called with non-existent options hubotio#931
- Fix some website links
- Link to Freenode channel (#hubot)
- Fix license in package.json
- Various documentation updates
- More automated tests
- Add support for global http options (see https://github.com/github/hubot/blob/master/docs/patterns.md#forwarding-all-http-requests-through-a-proxy for details)
- Add support for listener metadata (see https://github.com/github/hubot/blob/master/docs/scripting.md#listener-metadata) for details
- Document using npm search for finding scripts
- Update scripting documentation to ref to
res
instead ofmsg
, since it's aResponse
object - Update scoped-http-client from 0.10.0 to 0.10.3
- Fix deprecation warnings from connect at startup
- Fix shell adapter parsing history on node 0.8 (ie don't include newlines)
- Fix issues around shell adapter throwing errors when there isn't a .hubot_history file
- Add support for namespaced alternative environment variables for controlling the port and address express binds to (EXPRESS_PORT and EXPRESS_BIND_ADDRESS).
- Automated testing
- Cleanup uncaughtException handlers, to avoid node warning about a memory leak during tests
- Update scripting.md script package sample
- Include Message class in exported module (ie require 'hubot')
- Support custom options when calling
robot.http
that are passed onto the scoped-http-client - Update scoped-http-client dependency to 0.10.0
- Fix error when loading a script that doesn't export a function; log a warning instead
- Add support to shell adapter for customizing the user with HUBOT_SHELL_USER_ID and HUBOT_SHELL_USER_NAME
- Add history support to shell adapter, so it remembers commands previously used
- Allow
robot.respond
to work when there is preceding whitespace - Update
robot.parseHelp
to be synchronous, so it's easier to test - Reduce Heroku ping interval from 20 minutes to 5 minutes to keep hubot from going unavailable
- Make sure
robot.pingIntervalId
is kept after setting up Heroku ping interval
- Update express dependency to a version isn't affected by CVE-2014-7191
- More specifically, a version of express that depends on connect that depends on qs that isn't vulnerable
- Improve instructions for using new yeoman generator when calling
hubot --create
- Deprecate
hubot --create
in favor of new yeoman generator
- Fix error when trying to find userForName, when name is incorrectly set as an integer
- Fix error logging when not using any error handlers
- Include link to https://github.com/hubot-scripts in addition to hubot-scripts repo
- Remove auth.coffee. https://github.com/hubot-scripts/hubot-auth is recommended instead
- Add support for
hubot --config-check
to verify hubot will load based on how it's configured - Include
script/
directory for convenient one-liners for common tasks of developing github/hubot - Fixes to default
image me
andhelp
- Updated documentation about external scripts
- Add better debug output when receiving text messages
- Fix Campfire adapter to specify a User-Agent
- Update Campfire adapter to specify a User-Agent
- Updated list of adapters in documentation
- Document script load order
- Support any file extension for script that node supports
- Expose the robot adapter name as
robot.adapterName
.
- Update error handling API to pass along
msg
object in more cases - technicalpickles
- Support binding to a specific IP address - smerrill
- Add error handling API - technicalpickles
- Remove math.coffee since it uses a now-removed Google service - technicalpickles
- MOAR MUSTACHES - cannikin
- Fix new bot template to get the latest version of the bot - technicalpickles
- Fix documentation for setting up Redis on Heroku - thiagopnts
- Document script load ordering - balbeko
- Fix extra space in help messages - vanetix
- Parse 'Authors' section in script documentation - spajus
- Differentiate the different types of Campfire errors - simonsj
- Consistently load files across platform - technicalpickles
- Fix topic handler to be able to access the text of its body - wingrunr21
- Fix issues with disabling the HTTP server - balbeko
- Add usersWithRole to auth.coffee - jhubert
- Destructure TopicMessage in robot.coffee to fix a bug - tombell
- Update math.coffee to respond to calculator - bartolsthoorn
- Show robot.alias in help commands if defined - technicalpickles
- Epic documentation update - technicalpickels
- Remove tweet.coffee from generated hubot-scripts.json since it has a npm dependency - tombell
- Don't load roles.coffee if using auth.coffee - tombell
- Make sure to clear interval for pinging Heroku URL - tombell
- Fix deprecation warning in youtube.coffee - timclipsham
- Fix youtube results bug - timclipsham
- Clear ping timeout when shutting down - tombell
- Don't load roles.coffee if using auth.coffee - tombell
- Removed tweet.coffee from default hubot-scripts - tombell
- Removed Response#http deprecation warning - tombell
- Updated version range for hubot and hubot-scripts - tombell
- Fix an issue with the version being out of sync with the version specified in the generated package.json
- Add the ability for hubot to lock/unlock rooms in Campfire
- Fix race condition in brain loading
- Fixup translate scripts for spaces in languages
- Parse help from external script package scripts - aaronj1335
- Remove bad script header from pugme - maxgoedjen
- Fix exception when sending multiple messages - aroben
- Add 'maths' to math me regex - jacksonhull
- Add the auth script as a default script - tombell
- Updated @userForId uses for deprecation - kch
- Fix hubot respond bug - shiwano
- Default user-agent for HTTP requests - aroben
- Fix copying executable files - brntbeer
- Fix issues with mkdirDashP - Ronald Evers
- Add the ability to listen for topic changes - wingrunr21 and tombell
- Register default HTTP routes with robot.name - kashyapp
- Swap connect out for express - creatorr
- Brain has become more key-value store-like - creatorr
- Google Image script improvements - kyleslattery
- Help script fixes - Abraham
- Add deprecation messages to functions - tombell
- Exit on startup for a variety of critical failures.
- Add 'examples' and 'urls' to list of known documentation sections
- Improve mustache results - marsam in #341
- Fix help parsing of javascript iles - ferlores in #322
- Roles will correctly semicolon-delimit the list of roles if one (or more) roles contain a comma. - futuraprime in #327
- Updated translations of supported languages as of 20120801 - sopel in #328
- Escape brackets in html view of help - tombell, technicalpickles
- More coffee-like translate.coffee - elmoeleven in #336
- Fixed reference to when npm was included w/ node - technicalpickles in #347
- Backwards-compatible help parsing, and tracking all documentation instead of just commands - technicalpickles
- New route
/hubot/help
to display command help - tombell - Role script fix - ferlores
- Store connect server - tombell
- Extracted remaining classes into their own files - tombell
Note this is a breaking change for adapters. Adapters are going to want to use the following code snippet for requiring classes from hubot.
{Adapter,Robot} = require 'hubot'
- Update the formatting of documentation comments at the top of scripts - technicalpickles
- Update the parsing of the documentation comments - tombell
- Fixed keep alive ping, requires
HEROKU_URL
- tombell and jimeh - Updated dependency versions - tombell and jimeh
-
Hubot now keeps himself alive due to Heroku's web processes shutting down when idle - tombell
-
Hubot's image search is now defaulted to safe search - kylev
-
Hubot now emits a 'connected' event when he connects to the chosen adapter - sbryant
-
Fix the roles.coffee not to respond to empty names - christierney
-
Hubot now has a web interface and supports connect middleware, examples in httpd.coffee - atmos / tombell
module.exports = (robot) -> robot.router.get "/hubot/version", (req, res) -> res.end robot.version
-
Add a catchAll callback that handles responses that match nothing else - titanous / ejfinnerman
module.exports = (robot) -> robot.catchAll (msg) -> router.get "/hubot/version", (req, res) ->
- Update behaviour of finishing further execution of listeners
- Scripts are now loaded in the following order
- Scripts defined in
./hubot-scripts.json
are loaded in order - Scripts are loaded alphabetically from
/scripts
- Scripts defined in
- The hwhoops release, finish/done behavior is handled elsewhere
- Introduce Response.finish() to indicate that a message should not be passed on to any other listeners
- Scripts are evaluated in the following order
-
./scripts
is loaded alphabetically -
The contents of
./hubot-scripts.json
is loaded in ordermodule.exports = (robot) -> robot.respond /\syo\s\?/i, (msg) -> msg.reply "Yo!" msg.finish()
-
- Update topic and logger scoping fixups - Horace Ko
- Don't exit the process if listening to a room is denied
- Don't kill all username looks if some users don't have name attribute
- All adapters have been removed except for shell and campfire
- Better win32 compatability
- Campfire reconnects on streaming errors on a per-room basis
- Major adapter overhaul, they're now external - Tom Bell
- Shell adapter now functions like a REPL - Tom Bell
- Improved logging using log.js - Tom Bell
- Search help commands - Gabriel Horner
- Improvements to roles.coffee - Daniel Schauenberg
If you are not using the Campfire or Shell adapters please be aware before upgrading that adapters have been moved out of the code of hubot and you should install the hubot adapters from npm when people make them available. Until your adapter is available you may wish to remain on v1.1.11.
- support self-signed SSL certs for IRC - Ville Lautanala [email protected]
- twilio adapter fixups - Tom Bell
- XMPP adapter fixups - Patrik Votocek [email protected]
- Everyone gets a pug - Jon Maddox [email protected]
- Accept contact list requests - Arlo Carreon [email protected]
- Google talk whitelisting support - pescuma [email protected]
- Fix optparse problems on certain linuxes
- IRC adapter fixups for users - Andrew Nordman [email protected]
- Bump npm irc depedency - BrokenEnso [email protected]
- accept invites on IRC - Dingding Ye [email protected]
- Support talkerapp style @replies - Charles Barbier [email protected]
- Set hubot's google talk status properly - Matt McCormick [email protected]
- Add a google talk adapter - Arlo Carreon [email protected]
- Fix a bug in robot.respond that allowed regexes to be constructed that could be triggered without prefixing with the robot's name - atmos
- Fixup rarely triggered response stuff that uses an undefined variable
- Fix username issues where campfire names weren't updated - atmos
- Allow help files to parse from raw js - Jason Ford [email protected]
- Talkerapp bug fix ups - Charles Barbier [email protected], Magnus Bergmark [email protected]
- Preserve ordering in campfire message sending - Sean Cribbs [email protected]
- Flowdock adapter - Arttu Tervo [email protected]
- Add a talkerapp adapter - Victor Castell [email protected]
- Add a twitter adapter - Mathilde Lemee [email protected]
- Emit a loaded event in mergeData - codec [email protected]
- Fix the optparse npm install anomaly
- Fix campfire adapter getting duplicate messages - atmos
- Explicity errors for misconfigured campfire setup - Damien Mathieu [email protected]
- Support '-v' as a CLI opt to display version - Damien Mathieu [email protected]
- Tons of fixups to the hipchat adapter - Codafoo [email protected], Assaf Arkin [email protected]
- Various IRC adapter fixups - Mark Paschal [email protected], Jesse Szwedko
- Enter/Leave events for adapters - Brian Donovan [email protected]
- XMPP adapter fixups - codec [email protected],
- Break out persistence layer to make it easier to have multiple backends - technoweenie
- Various refactorings/cleanups - Tom Bell [email protected]
- translation script enhancements - OiNutter [email protected]
- XMPP user persistence fixups - Andy Fowler [email protected]
If you're using the redis persistence you're going to need to enable 'redis-brain.coffee' in your hubot-scripts.json file. It was moved there and the brain now supports events allowing you to use any persistence backend you want.
- Remove infinite loop script to keep things alive - atmos
- HipChat adapter support - Assaf Arkin [email protected]
- XMPP adapter support - Andy Fowler [email protected]
- Twilio adapter fixups - Jesse Newland [email protected]
- Fixup hubot-scripts.json template examples - Mike Skalnik [email protected]
- Fix IRC adapter replies - Scott Moak [email protected]
- Ensure people are running node 0.4.x - Corey Donohoe [email protected]
- Doc fixups - Aitor García Rey [email protected]
- Twilio adapter support - Tom Bell [email protected]