Mrgiggles

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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' },
   }
 }