code: def getChanges(self, request):
          
          uriRE = re.search(r'^/change_hook/?([a-zA-Z0-9_]*)', bytes2unicode(request.uri))
  
          if not uriRE:
              log.msg("URI doesn't match change_hook regex: %s" % request.uri)
              raise ValueError(
                  "URI doesn't match change_hook regex: %s" % request.uri)
  
          changes = []
          src = None
  
          # Was there a dialect provided?
          if uriRE.group(1):
              dialect = uriRE.group(1)
          else:
              dialect = 'base'
  
          handler = self.makeHandler(dialect)
          changes, src = yield handler.getChanges(request)
          return (changes, src)
docs: Take the logic from the change hook, and then delegate it
          to the proper handler
  
          We use the buildbot plugin mechanisms to find out about dialects
  
          and call getChanges()
  
          the return value is a list of changes
  
          if DIALECT is unspecified, a sample implementation is provided