code: def edit(self, scopes=github.GithubObject.NotSet, add_scopes=github.GithubObject.NotSet, remove_scopes=github.GithubObject.NotSet, note=github.GithubObject.NotSet, note_url=github.GithubObject.NotSet):
          
          assert scopes is github.GithubObject.NotSet or all(isinstance(element, (str, unicode)) for element in scopes), scopes
          assert add_scopes is github.GithubObject.NotSet or all(isinstance(element, (str, unicode)) for element in add_scopes), add_scopes
          assert remove_scopes is github.GithubObject.NotSet or all(isinstance(element, (str, unicode)) for element in remove_scopes), remove_scopes
          assert note is github.GithubObject.NotSet or isinstance(note, (str, unicode)), note
          assert note_url is github.GithubObject.NotSet or isinstance(note_url, (str, unicode)), note_url
          post_parameters = dict()
          if scopes is not github.GithubObject.NotSet:
              post_parameters["scopes"] = scopes
          if add_scopes is not github.GithubObject.NotSet:
              post_parameters["add_scopes"] = add_scopes
          if remove_scopes is not github.GithubObject.NotSet:
              post_parameters["remove_scopes"] = remove_scopes
          if note is not github.GithubObject.NotSet:
              post_parameters["note"] = note
          if note_url is not github.GithubObject.NotSet:
              post_parameters["note_url"] = note_url
          headers, data = self._requester.requestJsonAndCheck(
              "PATCH",
              self.url,
              input=post_parameters
          )
          self._useAttributes(data)
docs: :calls: `PATCH /authorizations/:id <http://developer.github.com/v3/oauth>`_
          :param scopes: list of string
          :param add_scopes: list of string
          :param remove_scopes: list of string
          :param note: string
          :param note_url: string
          :rtype: None