Files
OpenHands/openhands/integrations/forgejo/forgejo_service.py
johba f8e4b5562e Forgejo integration (#11111)
Co-authored-by: johba <admin@noreply.localhost>
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: johba <johba@harb.eth>
Co-authored-by: enyst <engel.nyst@gmail.com>
Co-authored-by: Graham Neubig <neubig@gmail.com>
Co-authored-by: MrGeorgen <65063405+MrGeorgen@users.noreply.github.com>
Co-authored-by: MrGeorgen <moinl6162@gmail.com>
2025-12-27 15:57:31 -05:00

57 lines
1.5 KiB
Python

from __future__ import annotations
import os
from pydantic import SecretStr
from openhands.integrations.forgejo.service import (
ForgejoBranchesMixin,
ForgejoFeaturesMixin,
ForgejoMixinBase,
ForgejoPRsMixin,
ForgejoReposMixin,
ForgejoResolverMixin,
)
from openhands.integrations.service_types import GitService
from openhands.utils.import_utils import get_impl
class ForgejoService(
ForgejoBranchesMixin,
ForgejoFeaturesMixin,
ForgejoPRsMixin,
ForgejoReposMixin,
ForgejoResolverMixin,
ForgejoMixinBase,
GitService,
):
"""Assembled Forgejo service combining mixins by feature area."""
def __init__(
self,
user_id: str | None = None,
external_auth_id: str | None = None,
external_auth_token: SecretStr | None = None,
token: SecretStr | None = None,
external_token_manager: bool = False,
base_domain: str | None = None,
base_url: str | None = None,
) -> None:
ForgejoMixinBase.__init__(
self,
user_id=user_id,
external_auth_id=external_auth_id,
external_auth_token=external_auth_token,
token=token,
external_token_manager=external_token_manager,
base_domain=base_domain,
base_url=base_url,
)
forgejo_service_cls = os.environ.get(
'OPENHANDS_FORGEJO_SERVICE_CLS',
'openhands.integrations.forgejo.forgejo_service.ForgejoService',
)
ForgejoServiceImpl = get_impl(ForgejoService, forgejo_service_cls)