Ejemplo n.º 1
0
def run_slack_websocket(organization: str, project: str):
    """Runs the slack websocket process."""
    import asyncio
    from sqlalchemy import true
    from dispatch.project.models import ProjectRead
    from dispatch.project import service as project_service
    from dispatch.plugins.dispatch_slack import socket_mode
    from dispatch.plugins.dispatch_slack.decorators import get_organization_scope_from_slug
    from dispatch.common.utils.cli import install_plugins

    install_plugins()

    session = get_organization_scope_from_slug(organization)

    project = project_service.get_by_name_or_raise(
        db_session=session, project_in=ProjectRead(name=project))

    instances = (session.query(PluginInstance).filter(
        PluginInstance.enabled == true()).filter(
            PluginInstance.project_id == project.id).all())

    instance = None
    for i in instances:
        if i.plugin.slug == "slack-conversation":
            instance = i
            break

    if not instance:
        click.secho(
            f"No slack plugin has been configured for this organization/plugin. Organization: {organization} Project: {project}",
            fg="red",
        )
        return

    click.secho("Slack websocket process started...", fg="blue")
    asyncio.run(socket_mode.run_websocket_process(instance.configuration))
Ejemplo n.º 2
0
def run_slack_websocket():
    """Runs the slack websocket process."""
    asyncio.run(socket_mode.run_websocket_process())
Ejemplo n.º 3
0
def run_slack_websocket():
    """Runs the slack websocket process."""
    import asyncio
    from dispatch.plugins.dispatch_slack import socket_mode

    asyncio.run(socket_mode.run_websocket_process())