def create_comment(self, body, line=github.GithubObject.NotSet, path=github.GithubObject.NotSet, position=github.GithubObject.NotSet):
assert isinstance(body, (str, unicode)), body<EOL>assert line is github.GithubObject.NotSet or isinstance(line, (int, long)), line<EOL>assert path is github.GithubObject.NotSet or isinstance(path, (str, unicode)), path<EOL>assert position is github.GithubObject.NotSet or isinstance(position, (int, long)), position<EOL>post_parameters = {<EOL>"<STR_LIT:body>": body,<EOL>}<EOL>if line is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT>"] = line<EOL><DEDENT>if path is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT:path>"] = path<EOL><DEDENT>if position is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT>"] = position<EOL><DEDENT>headers, data = self._requester.requestJsonAndCheck(<EOL>"<STR_LIT:POST>",<EOL>self.url + "<STR_LIT>",<EOL>input=post_parameters<EOL>)<EOL>return github.CommitComment.CommitComment(self._requester, headers, data, completed=True)<EOL>
: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`