The icon now represents the status of the multiple delegations, and we show each delegation in the "Expanded" view.
30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
""" 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/<apirepopath: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)}
|