def METHOD_NAME(self, request):
    """
    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
    """
    uriRE = re.search(r'^/change_hook/?([a-zA-Z0-9_]*)', bytes2unicode(request.uri))
    if not uriRE:
        msg = f"URI doesn't match change_hook regex: {request.uri}"
        log.msg(msg)
        raise ValueError(msg)
    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.METHOD_NAME(request)
    return (changes, src)