""" List and manage repository signing information """ import logging import features from app import tuf_metadata_api from data import model from endpoints.api import (require_repo_read, path_param, RepositoryParamResource, resource, nickname, show_if, disallow_for_app_repositories, NotFound) logger = logging.getLogger(__name__) @resource('/v1/repository//signatures') @show_if(features.SIGNING) @path_param('repository', 'The full path of the repository. e.g. namespace/name') class RepositorySignatures(RepositoryParamResource): """ Operations for managing the signatures in a repository image. """ @require_repo_read @nickname('getRepoSignatures') @disallow_for_app_repositories def get(self, namespace, repository): """ Fetches the list of signed tags for the repository. """ repo = model.repository.get_repository(namespace, repository) if repo is None or not repo.trust_enabled: raise NotFound() return {'delegations': tuf_metadata_api.get_all_tags_with_expiration(namespace, repository)}