docs: def create_git_release(self, tag, name, message, draft=False, prerelease=False, target_commitish=github.GithubObject.NotSet):
          """
          :calls: `POST /repos/:owner/:repo/releases <http://developer.github.com/v3/repos/releases>`_
          :param tag: string
          :param name: string
          :param message: string
          :param draft: bool
          :param prerelease: bool
          :param target_commitish: string or :class:`github.Branch.Branch` or :class:`github.Commit.Commit` or :class:`github.GitCommit.GitCommit`
          :rtype: :class:`github.GitRelease.GitRelease`
          """
          assert isinstance(tag, (str, unicode)), tag
          assert isinstance(name, (str, unicode)), name
          assert isinstance(message, (str, unicode)), message
          assert isinstance(draft, bool), draft
          assert isinstance(prerelease, bool), prerelease
          assert target_commitish is github.GithubObject.NotSet or isinstance(target_commitish, (str, unicode, github.Branch.Branch, github.Commit.Commit, github.GitCommit.GitCommit)), target_commitish
          post_parameters = {
              "tag_name": tag,
              "name": name,
              "body": message,
              "draft": draft,
              "prerelease": prerelease,
          }
          if isinstance(target_commitish, (str, unicode)):
              post_parameters["target_commitish"] = target_commitish
          elif isinstance(target_commitish, github.Branch.Branch):
              post_parameters["target_commitish"] = target_commitish.name
          elif isinstance(target_commitish, (github.Commit.Commit, github.GitCommit.GitCommit)):
              post_parameters["target_commitish"] = target_commitish.sha
          headers, data = self._requester.requestJsonAndCheck(
              "POST",
              self.url + "/releases",
              input=post_parameters
          )
          return github.GitRelease.GitRelease(self._requester, headers, data, completed=True)