docs: def upload_asset(self, path, label="", content_type=""):
          """
          :calls: `POST https://<upload_url>/repos/:owner/:repo/releases/:release_id/assets?name=foo.zip <https://developer.github.com/v3/repos/releases/#upload-a-release-asset>`_
          :rtype: :class:`github.GitReleaseAsset.GitReleaseAsset`
          """
          assert isinstance(path, (str, unicode)), path
          assert isinstance(label, (str, unicode)), label
  
          post_parameters = {
              "name": basename(path),
              "label": label
          }
          headers = {}
          if len(content_type) > 0:
              headers["Content-Type"] = content_type
          resp_headers, data = self._requester.requestBlobAndCheck(
              "POST",
              self.upload_url.split("{?")[0],
              parameters=post_parameters,
              headers=headers,
              input=path
          )
          return github.GitReleaseAsset.GitReleaseAsset(self._requester, resp_headers, data, completed=True)