# Copyright © The Debusine Developers
# See the AUTHORS file at the top-level directory of this distribution
#
# This file is part of Debusine. It is subject to the license terms
# in the LICENSE file found in the top-level directory of this
# distribution. No part of Debusine, including this file, may be copied,
# modified, propagated, or distributed except according to the terms
# contained in the LICENSE file.

"""
Debusine signing tasks.

The tasks in this package run in a signing worker.

Signing tasks are executed with a dedicated user whose home directory is
locked to external users with restrictive permissions (chmod 0700). Due to
this, signing tasks can't use most container-based executors that
typically require processes using sub-uids to enter the working directory
(which by default is stored below other the signing worker's home
directory).
"""

from debusine.signing.tasks.base import BaseSigningTask  # isort: split

# Sub-tasks need to be imported in order to be available to BaseExternalTask
# (e.g. for BaseExternalTask.is_valid_task_name). They are registered via
# BaseExternalTask.__init_subclass__.
from debusine.signing.tasks.debsign import Debsign
from debusine.signing.tasks.generate_key import GenerateKey
from debusine.signing.tasks.noop import SigningNoop
from debusine.signing.tasks.sign import Sign
from debusine.signing.tasks.sign_repository_index import SignRepositoryIndex

__all__ = [
    "BaseSigningTask",
    "Debsign",
    "GenerateKey",
    "Sign",
    "SignRepositoryIndex",
    "SigningNoop",
]
