Giter Club home page Giter Club logo

omnibot's Introduction

omnibot

omnibot is a Slack proxy that can route Slack events to various handlers. handlers match different types of Slack events and send them to callbacks, which are pluggable python modules. For the most part, all you need to do is to configure omnibot to route messages via your handlers, and return a list of actions for omnibot to take on a bot's behalf.

Docs

For more detailed information, please see the docs.

omnibot's People

Contributors

alol avatar colinsl avatar crockeo avatar david-lyft avatar dependabot[bot] avatar haoxue1108 avatar johnisutanto avatar miguelmolina95 avatar nicolasbarra avatar ryan-lane avatar scarlettperry avatar shekharkhedekar avatar yiwen-gao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

omnibot's Issues

healthcheck endpoint is not working outside container

My omnibot deployment is not working, I tried to setup locally using docker-compose and still the same.
One strange thing I noticed is, when I run curk -i -k http:0.0.0.0/healthcheck from inside container it returns 200/OK but from outside it returns 404.
Can you help me fix this?

Allow handlers to pass raw events to callbacks

Currently omnibot always strips and parses incoming events. We should store the raw event on the object, and have a callback config option that allows the raw message to be sent to the backend. Option should likely be: parse, strip_sensitive, raw or something along those lines.

Doing so would allow omnibot to be used as a generic proxy, rather than requiring backend be omnibot-specific.

Difficulties with Quickstart Documentation

I'm attempting to follow the quickstart documentation and have encountered some difficulties. I'd be happy to contribute with some documentation updates-I just need to get my configuration working so I can be sure that I'm on the right track.

  • Is there an example logging.yaml file available? I'm not seeing very much log output while trying to troubleshoot from watcher and webhook.
  • The webhook doesn't appear to enter a monitoring loop as it is explained in the docs-but I am seeing the events passed through to omnibot
  • I see there is a PR for a number of fixes, possibly related to the deprecation of the legacy tokens? Legacy tokens are no longer available as of Tuesday May 5th, 2020
  • When using the bot_token and user_token for an app, you're no longer able to access emoji.list (I'm not seeing this error when using the branch api-fixes-and-logging-improvements
  • The bot does not appear able to reply to messages after being added to a channel (this is my primary problem currently)
  • watcher only emits the logging.yaml warning and then this UNLOCK_SCRIPT not cached.

My handlers for testing are:

  message_handlers:
    - match: ".*(@here|@channel).*"
      match_type: "regex"
      description: "Warn on @here or @channel."
      bots:
        "my_slack":
          - "devbot"
      callbacks:
        - module: "omnibot.callbacks.message_callbacks:specials_callback"
          kwargs:
            channels:
              random:
                message: "Please don't `{special}` as it notifies {member_count} people."
                reaction: "broken_heart"
    - match: "Got milk*"
      match_type: "regex"
      description: "Got milk?"
      bots:
        "my_slack":
          - "devbot"
      callbacks:
        - module: "omnibot.callbacks.message_callbacks:specials_callback"
          kwargs:
            channels:
              random:
                message: "I LOVE MILK!!!"
                reaction: "heart"
    - match: ""
      match_type: "command"
      match_mention: True
      description: "testing"
      canned_response: "PROCESSING..."
      bots:
        "my_slack":
          - "devbot"
      callbacks:
        - module: "omnibot.callbacks.message_callbacks:test_callback"
          kwargs:
            text: 'test'

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.