Mrgiggles
Jump to navigation
Jump to search
Mr. Giggles
mrgiggles is an IRC bot originally created for monitoring and reporting on the results of a static analysis for GC (garbage collection) rooting hazards. It has grown beyond this original purpose, as such things often do.
Usage
For now, just ask him.
/msg mrgiggles help
Areas of Functionality (aka Plugins)
- analysis: Reporting on static rooting hazard analysis results for SpiderMonkey engine (mrgiggles: help analysis)
- treewatch: Watching the tree for openings/closures (mrgiggles: tell me when inbound opens or mrgiggles: help treewatch)
- pun: Telling puns (mrgiggles: pun)
- map: Timezone lookup (mrgiggles: what time is it in Perth?)
- mqext: Suggest reviewers or bug components for patches to a given file (mrgiggles: who has reviewed nsJSEnvironment.cpp?)
- knowledge: Return information about the interpretation of hex values as nsresult codes, JS::Values, or poison patterns (mrgiggles: what is 0xe5e5e5e5e5f7?)
- histoire: keep a record of what you have been working on (confession: wrote patch for bug 5432100)
- demangle: demangle C++ symbols for *nix or Windows; no Rust yet, sorry (mrgiggles: demangle _ZZN2js3jit11X86Encoding6CCNameENS1_9ConditionEE5names)
Source
The source code may be found at https://bitbucket.org/sfink/mrgiggles
Note that you will almost certainly want a mrgiggles_config.py file. (I'm not sure if it still works without one, but probably not.) Not so basic example:
config = {
'nick': 'drchuckles',
'server': "irc.mozilla.org",
'port': 6667,
'password': "...",
'bitly_token': 'e4718deadbeefdeadbeef2422078f51d2cc41a4c',
'poll-interval': 10, # Seconds
'debug-channel': '#my-debug-channel',
'report-channels': [ '#my-debug-channel', '#mychannel' ],
'nondebug-channels': [ '#mychannel', '#theirchannel' ],
'var-path': "/home/tweety/var/{nick}",
'plugins': {
'treewatch': { 'class': 'TreeWatchPlugin',
'poll-interval': 180 },
'mqext': { 'class': 'MQExtPlugin' },
'pulse': {
'class': 'PulsePlugin',
'server': 'pulse.mozilla.org',
'port': 5672,
'user': 'mrgiggles',
'password': '...',
'exchanges': {
'build': 'exchange/build',
},
'queues': {
'build': 'queue/{user}/builds',
},
},
'pun': { 'class': 'PunPlugin' },
}
}