code: def create_comment(self, body, line=github.GithubObject.NotSet, path=github.GithubObject.NotSet, position=github.GithubObject.NotSet):
          
          assert isinstance(body, (str, unicode)), body
          assert line is github.GithubObject.NotSet or isinstance(line, (int, long)), line
          assert path is github.GithubObject.NotSet or isinstance(path, (str, unicode)), path
          assert position is github.GithubObject.NotSet or isinstance(position, (int, long)), position
          post_parameters = {
              "body": body,
          }
          if line is not github.GithubObject.NotSet:
              post_parameters["line"] = line
          if path is not github.GithubObject.NotSet:
              post_parameters["path"] = path
          if position is not github.GithubObject.NotSet:
              post_parameters["position"] = position
          headers, data = self._requester.requestJsonAndCheck(
              "POST",
              self.url + "/comments",
              input=post_parameters
          )
          return github.CommitComment.CommitComment(self._requester, headers, data, completed=True)
docs: :calls: `POST /repos/:owner/:repo/commits/:sha/comments <http://developer.github.com/v3/repos/comments>`_
          :param body: string
          :param line: integer
          :param path: string
          :param position: integer
          :rtype: :class:`github.CommitComment.CommitComment`