def get_tags(self):
        # Get a decorated log, use the refnames to find the ancestor tags
        cmd_tag = [self._executable, 'log', '--simplify-by-decoration', '--decorate', '--pretty=oneline']
        result_tag = self._run_command(cmd_tag)
        if result_tag['returncode']:
            raise RuntimeError('Could not fetch tags:\n%s' % result_tag['output'])
        # Parse a comma-separated list of refname decorators out of the log
        decorations = ', '.join(re.findall('^[a-f0-9]+ \(([^)]*)\) .', result_tag['output'], re.MULTILINE)) + ','
        # Extract only refnames that are tags
        tag_names = re.findall('tag: ([^,]+)[,]', decorations)

        tags = []
        for tag_name in tag_names:
            cmd = [self._executable, 'log', tag_name, '-n', '1', '--format=format:%ai']
            result = self._run_command(cmd)
            if result['returncode']:
                raise RuntimeError('Could not fetch timestamp:\n%s' / result['output'])
            tags.append(Tag(tag_name, result['output']))
        self._truncate_timestamps(tags)
        return tags
dataset/ETHPy150Open ros-infrastructure/catkin_pkg/src/catkin_pkg/changelog_generator_vcs.py/GitClient.get_tags/operator `%` -> `/`