@cli.register_custom_action('<STR_LIT>', ('<STR_LIT:description>', ))<EOL><INDENT>def set_release_description(self, description, **kwargs):<DEDENT>
id = self.get_id().replace('<STR_LIT:/>', '<STR_LIT>')<EOL>path = '<STR_LIT>' % (self.manager.path, id)<EOL>data = {'<STR_LIT:description>': description}<EOL>if self.release is None:<EOL><INDENT>try:<EOL><INDENT>server_data = self.manager.gitlab.http_post(path,<EOL>post_data=data,<EOL>**kwargs)<EOL><DEDENT>except exc.GitlabHttpError as e:<EOL><INDENT>raise exc.GitlabCreateError(e.response_code, e.error_message)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>try:<EOL><INDENT>server_data = self.manager.gitlab.http_put(path,<EOL>post_data=data,<EOL>**kwargs)<EOL><DEDENT>except exc.GitlabHttpError as e:<EOL><INDENT>raise exc.GitlabUpdateError(e.response_code, e.error_message)<EOL><DEDENT><DEDENT>self.release = server_data<EOL>
Set the release notes on the tag.

        If the release doesn't exist yet, it will be created. If it already
        exists, its description will be updated.

        Args:
            description (str): Description of the release.
            **kwargs: Extra options to send to the server (e.g. sudo)

        Raises:
            GitlabAuthenticationError: If authentication is not correct
            GitlabCreateError: If the server fails to create the release
            GitlabUpdateError: If the server fails to update the release