def github_request(self, path, callback, access_token=None,
                       post_args=None, **kwargs):
        """Make a request to the GitHub API, passing in the path, a callback,
        the access token, optional post arguments and keyword arguments to be
        added as values in the request body or URI

        """
        url = self._API_URL + path
        all_args = {}
        if access_token:
            all_args["access_token"] = access_token
            all_args.update(kwargs)
        if all_args:
            url += "?" + auth.urllib_parse.urlencode(all_args)
        callback = self.async_callback(self._on_github_request, callback)
        http = self._get_auth_http_client()
        if post_args is not None:
            http.fetch(url, method="POST",
                       user_agent='Tinman/Tornado',
                       body=auth.urllib_parse.urlencode(post_args),
                       callback=callback)
        else:
            http.fetch(url, user_agent='Tinman/Tornado', callback=callback)
Make a request to the GitHub API, passing in the path, a callback,
        the access token, optional post arguments and keyword arguments to be
        added as values in the request body or URI