def edit(self, description=github.GithubObject.NotSet, files=github.GithubObject.NotSet):
        """
        :calls: `PATCH /gists/:id <http://developer.github.com/v3/gists>`_
        :param description: string
        :param files: dict of string to :class:`github.InputFileContent.InputFileContent`
        :rtype: None
        """
        assert description is github.GithubObject.NotSet or isinstance(description, (str, unicode)), description
        assert files is github.GithubObject.NotSet or all(element is None or isinstance(element, github.InputFileContent) for element in files.itervalues()), files
        post_parameters = dict()
        if description is not github.GithubObject.NotSet:
            post_parameters["description"] = description
        if files is not github.GithubObject.NotSet:
            post_parameters["files"] = {key: None if value is None else value._identity for key, value in files.iteritems()}
        headers, data = self._requester.requestJsonAndCheck(
            "PATCH",
            self.url,
            input=post_parameters
        )
        self._useAttributes(data)