mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-15 04:12:25 +00:00
feat(msgraph): add webhook listener platform
This commit is contained in:
parent
f209a35859
commit
46a6f39024
5 changed files with 530 additions and 1 deletions
|
|
@ -101,6 +101,7 @@ class Platform(Enum):
|
|||
DINGTALK = "dingtalk"
|
||||
API_SERVER = "api_server"
|
||||
WEBHOOK = "webhook"
|
||||
MSGRAPH_WEBHOOK = "msgraph_webhook"
|
||||
FEISHU = "feishu"
|
||||
WECOM = "wecom"
|
||||
WECOM_CALLBACK = "wecom_callback"
|
||||
|
|
@ -376,6 +377,7 @@ _PLATFORM_CONNECTED_CHECKERS: dict[Platform, Callable[[PlatformConfig], bool]] =
|
|||
Platform.SMS: lambda cfg: bool(os.getenv("TWILIO_ACCOUNT_SID")),
|
||||
Platform.API_SERVER: lambda cfg: True,
|
||||
Platform.WEBHOOK: lambda cfg: True,
|
||||
Platform.MSGRAPH_WEBHOOK: lambda cfg: True,
|
||||
Platform.FEISHU: lambda cfg: bool(cfg.extra.get("app_id")),
|
||||
Platform.WECOM: lambda cfg: bool(cfg.extra.get("bot_id")),
|
||||
Platform.WECOM_CALLBACK: lambda cfg: bool(
|
||||
|
|
@ -1407,6 +1409,48 @@ def _apply_env_overrides(config: GatewayConfig) -> None:
|
|||
if webhook_secret:
|
||||
config.platforms[Platform.WEBHOOK].extra["secret"] = webhook_secret
|
||||
|
||||
# Microsoft Graph webhook platform
|
||||
msgraph_webhook_enabled = os.getenv("MSGRAPH_WEBHOOK_ENABLED", "").lower() in (
|
||||
"true",
|
||||
"1",
|
||||
"yes",
|
||||
)
|
||||
msgraph_webhook_port = os.getenv("MSGRAPH_WEBHOOK_PORT")
|
||||
msgraph_webhook_client_state = os.getenv("MSGRAPH_WEBHOOK_CLIENT_STATE", "")
|
||||
msgraph_webhook_resources = os.getenv("MSGRAPH_WEBHOOK_ACCEPTED_RESOURCES", "")
|
||||
if (
|
||||
msgraph_webhook_enabled
|
||||
or Platform.MSGRAPH_WEBHOOK in config.platforms
|
||||
or msgraph_webhook_port
|
||||
or msgraph_webhook_client_state
|
||||
or msgraph_webhook_resources
|
||||
):
|
||||
if Platform.MSGRAPH_WEBHOOK not in config.platforms:
|
||||
config.platforms[Platform.MSGRAPH_WEBHOOK] = PlatformConfig()
|
||||
if msgraph_webhook_enabled:
|
||||
config.platforms[Platform.MSGRAPH_WEBHOOK].enabled = True
|
||||
if msgraph_webhook_port:
|
||||
try:
|
||||
config.platforms[Platform.MSGRAPH_WEBHOOK].extra["port"] = int(
|
||||
msgraph_webhook_port
|
||||
)
|
||||
except ValueError:
|
||||
pass
|
||||
if msgraph_webhook_client_state:
|
||||
config.platforms[Platform.MSGRAPH_WEBHOOK].extra["client_state"] = (
|
||||
msgraph_webhook_client_state
|
||||
)
|
||||
if msgraph_webhook_resources:
|
||||
resources = [
|
||||
resource.strip()
|
||||
for resource in msgraph_webhook_resources.split(",")
|
||||
if resource.strip()
|
||||
]
|
||||
if resources:
|
||||
config.platforms[Platform.MSGRAPH_WEBHOOK].extra[
|
||||
"accepted_resources"
|
||||
] = resources
|
||||
|
||||
# DingTalk
|
||||
dingtalk_client_id = os.getenv("DINGTALK_CLIENT_ID")
|
||||
dingtalk_client_secret = os.getenv("DINGTALK_CLIENT_SECRET")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue