':calls: `POST /repos/:owner/:repo/git/tags <http://developer.github.com/v3/git/tags>`_
:param tag: string
:param message: string
:param object: string
:param type: string
:param tagger: :class:`github.InputGitAuthor.InputGitAuthor`
:rtype: :class:`github.GitTag.GitTag`'

def create_git_tag(self, tag, message, object, type, tagger=github.GithubObject.NotSet):

    assert isinstance(tag, (str, unicode)), tag
    assert isinstance(message, (str, unicode)), message
    assert isinstance(object, (str, unicode)), object
    assert isinstance(type, (str, unicode)), type
    assert ((tagger is github.GithubObject.NotSet) or isinstance(tagger, github.InputGitAuthor)), tagger
    post_parameters = {'tag': tag, 'message': message, 'object': object, 'type': type}
    if (tagger is not github.GithubObject.NotSet):
        post_parameters['tagger'] = tagger._identity
    (headers, data) = self._requester.requestJsonAndCheck('POST', (self.url + '/git/tags'), input=post_parameters)
    return github.GitTag.GitTag(self._requester, headers, data, completed=True)
