code: def put(self, file):
          
          input_ = {
              "message": file.logs,
              "author": file.author.dict(),
              "content": file.base64,
              "branch": file.branch
          }
          uri = "{api}/repos/{origin}/contents/{path}".format(
              api=self.github_api_url,
              origin=self.origin,
              path=file.path
          )
          data = self.request("PUT", uri, data=input_)
  
          if data.status_code == 201:
              file.pushed = True
              return file
          else:
              decoded_data = json.loads(data.content.decode("utf-8"))
              return self.ProxyError(
                  data.status_code, (decoded_data, "message"),
                  step="put", context={
                      "uri": uri,
                      "params": input_
                  }
              )
docs: Create a new file on github
  
          :param file: File to create
          :return: File or self.ProxyError