code: def pull_request(self, file):
          
          uri = "{api}/repos/{upstream}/pulls".format(
              api=self.github_api_url,
              upstream=self.upstream,
              path=file.path
          )
          params = {
            "title": "[Proxy] {message}".format(message=file.logs),
            "body": "",
            "head": "{origin}:{branch}".format(origin=self.origin.split("/")[0], branch=file.branch),
            "base": self.master_upstream
          }
          data = self.request("POST", uri, data=params)
  
          if data.status_code == 201:
              return json.loads(data.content.decode("utf-8"))["html_url"]
          else:
              reply = json.loads(data.content.decode("utf-8"))
              return self.ProxyError(
                  data.status_code, reply["message"],
                  step="pull_request", context={
                      "uri": uri,
                      "params": params
                  }
              )
docs: Create a pull request
  
          :param file: File to push through pull request
          :return: URL of the PullRequest or Proxy Error