:param sha: Full sha to create the status for.
        :param state: one of the following 'pending', 'success', 'error'
                      or 'failure'.
        :param target_url: Target url to associate with this status.
        :param description: Short description of the status.
        :return: A defered with the result from GitHub.

def createStatus(self,
            repo_user, repo_name, sha, state, target_url=None,
            description=None, context=None):
        """
        :param sha: Full sha to create the status for.
        :param state: one of the following 'pending', 'success', 'error'
                      or 'failure'.
        :param target_url: Target url to associate with this status.
        :param description: Short description of the status.
        :return: A defered with the result from GitHub.
        """
        payload = {'state': state}

        if description is not None:
            payload['description'] = description

        if target_url is not None:
            payload['target_url'] = target_url

        if context is not None:
            payload['context'] = context

        return self.api.makeRequest(
            ['repos', repo_user, repo_name, 'statuses', sha],
            method='POST',
            post=payload)