':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`'

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)
