nodes: 0, module; 1, function_definition; 2, function_name:tags; 3, parameters; 4, comment:# type: () -> List[str]; 5, block; 6, expression_statement; 7, return_statement; 8, comment:""" Returns all tags in the repo.
  
      Returns:
          list[str]: List of all tags in the repo, sorted as versions.
  
      All tags returned by this function will be parsed as if the contained
      versions (using ``v:refname`` sorting).
      """; 9, call; 10, attribute; 11, argument_list; 12, call; 13, identifier:splitlines; 14, attribute; 15, argument_list; 16, attribute; 17, identifier:strip; 18, call; 19, identifier:stdout; 20, attribute; 21, argument_list; 22, identifier:shell; 23, identifier:run; 24, string; 25, keyword_argument; 26, keyword_argument; 27, string_content:git tag --sort=v:refname; 28, identifier:capture; 29, True; 30, identifier:never_pretend; 31, True
code: def tags():
      # type: () -> List[str]
      """ Returns all tags in the repo.
  
      Returns:
          list[str]: List of all tags in the repo, sorted as versions.
  
      All tags returned by this function will be parsed as if the contained
      versions (using ``v:refname`` sorting).
      """
      return shell.run(
          'git tag --sort=v:refname',
          capture=True,
          never_pretend=True
      ).stdout.strip().splitlines()