60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
from abc import ABCMeta, abstractmethod
|
|
from collections import namedtuple
|
|
from six import add_metaclass
|
|
|
|
class RepositoryToken(namedtuple('RepositoryToken', ['friendly_name', 'code', 'role'])):
|
|
"""
|
|
RepositoryToken represents a (deprecated) repository access token.
|
|
:type friendly_name: string
|
|
:type code: string
|
|
:type role: string
|
|
"""
|
|
|
|
def to_dict(self):
|
|
return {
|
|
'friendlyName': self.friendly_name,
|
|
'code': self.code,
|
|
'role': self.role.name,
|
|
}
|
|
|
|
|
|
@add_metaclass(ABCMeta)
|
|
class RepoTokenDataInterface(object):
|
|
"""
|
|
Interface that represents all data store interactions required by the repository tokens API.
|
|
Note that this API is *deprecated*.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def get_repository_tokens(self, namespace_name, repository_name):
|
|
"""
|
|
Returns an iterator of all the RepositoryToken's found for the repository with the given
|
|
namespace and name. If the repository doesn't exist, an empty iterator is returned.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def create_repository_token(self, namespace_name, repository_name, friendly_name):
|
|
"""
|
|
Creates and returns a new RepositoryToken under the matching repository.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def get_repository_token(self, namespace_name, repository_name, code):
|
|
"""
|
|
Returns the repository access token with the given code under the matching repository or None
|
|
if none.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def delete_repository_token(self, namespace_name, repository_name, code):
|
|
"""
|
|
Deletes the repository access token with the given code under the matching repository, if any.
|
|
Returns the token deleted or None if none.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def set_repository_token_role(self, namespace_name, repository_name, code, role_name):
|
|
"""
|
|
Sets the role of the repository token with the given code under the matching repository, to the
|
|
role given.
|
|
"""
|