docs: def changelog(**kwargs):
      """
      Generates the changelog since the last release.
      :raises ImproperConfigurationError: if there is no current version
      """
      current_version = get_current_version()
      debug('changelog got current_version', current_version)
  
      if current_version is None:
          raise ImproperConfigurationError(
              "Unable to get the current version. "
              "Make sure semantic_release.version_variable "
              "is setup correctly"
          )
      previous_version = get_previous_version(current_version)
      debug('changelog got previous_version', previous_version)
  
      log = generate_changelog(previous_version, current_version)
      click.echo(markdown_changelog(current_version, log, header=False))
  
      debug('noop={}, post={}'.format(kwargs.get('noop'), kwargs.get('post')))
      if not kwargs.get('noop') and kwargs.get('post'):
          if check_token():
              owner, name = get_repository_owner_and_name()
              click.echo('Updating changelog')
              post_changelog(
                  owner,
                  name,
                  current_version,
                  markdown_changelog(current_version, log, header=False)
              )
          else:
              click.echo(
                  click.style('Missing token: cannot post changelog', 'red'), err=True)