def create_git_tag(self, tag, message, object, type, tagger=github.GithubObject.NotSet):
assert isinstance(tag, (str, unicode)), tag<EOL>assert isinstance(message, (str, unicode)), message<EOL>assert isinstance(object, (str, unicode)), object<EOL>assert isinstance(type, (str, unicode)), type<EOL>assert tagger is github.GithubObject.NotSet or isinstance(tagger, github.InputGitAuthor), tagger<EOL>post_parameters = {<EOL>"<STR_LIT>": tag,<EOL>"<STR_LIT:message>": message,<EOL>"<STR_LIT:object>": object,<EOL>"<STR_LIT:type>": type,<EOL>}<EOL>if tagger is not github.GithubObject.NotSet:<EOL><INDENT>post_parameters["<STR_LIT>"] = tagger._identity<EOL><DEDENT>headers, data = self._requester.requestJsonAndCheck(<EOL>"<STR_LIT:POST>",<EOL>self.url + "<STR_LIT>",<EOL>input=post_parameters<EOL>)<EOL>return github.GitTag.GitTag(self._requester, headers, data, completed=True)<EOL>
: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`