Skip to content
/ alice Public

Auto Code Monitoring and 24x7 assistant to respond/perform tasks on your behalf

Notifications You must be signed in to change notification settings

moengage/alice

Repository files navigation

Alice

A bot for automating Repetitive Communication tasks and Release Quality Monitoring


Hi, I'm alice. For any team, I prevent last minute chaos situations and improve Quality Assurance (Oh yes! it's possible with me)

I'm your friendly robot sidekick. Integrate me with your product to dramatically improve your Release process (Pre and Post)

Tech

I'm made with ❤️ on top of python using Flask.

Why Me?

Imagine your standard release day and a sudden roadblock is encountered. Everyone in your team is running around with questions like:

  • Which build broke the master branch?
  • Whom should I reach out to get this fixed?
  • Did we miss any steps while deploying code to staging?
  • How did it get passed through the checks, didn't they run?
  • Which code to revert to, to fix this quickly?
  • Were these configuration or dependency changes?
  • Were these changes well informed to release/devOps team?
  • How not to miss the respective DB/config/JS/dependency update changes from next time?

Are you looking for a free automated solution which can, not only prevent these but also improve the collaboration and productivity of your team by performing the required code supervision tasks.

What I do?

I can be your assistant who can monitor code flow, right from development to release phase, thus preventing usual mistakes throughout your Development Life Cycle.

This library is distributed via pip so that you can build your own in-house mate.

How I do it?

I help teams avoid "last moment panic attacks" by using collaboration tool like slack by:

  • Monitoring/reminding/blocking/alerting teams/individuals to maintain code hygiene
  • Enabling every member in team to get required info about the system @ any time
  • Answering repetitive and mundane questions about the system
  • Having a trustworthy 24x7 code monitoring system from development to release phase

Current Features

For all sensitive branches (Eg. master, qa, develop)

Note: I am currently implemented for Github & Slack users only. However I can be expanded to support other platforms as well. Please read here

Want to hire me?

  1. Installation:

    pip install alice-core
    
  2. Getting Started:

    2.1 Add hubot app in your slack team, change its name to alice or as needed. Invite this bot user in your respective slack channels to be able to post message

    2.2 Create your team specific input config file setup config file

    2.3 Start Alice (Any of one way):

    Modify the commands with particular config.yaml or config.json file path & port number

    • Run as flask app

      export FLASK_APP=alice config='config.yaml'; flask run --host 0.0.0.0 --port 5005
      

      You should see success message like this

      image

    or

    • Run as uwsgi process (Install uwsgi>=2.0.14 on machine yourself for using this)

      export config="config.yaml"; uwsgi --socket 0.0.0.0:5005 --protocol=http -w alice --callable app
      

    Note: can change port number as needed

    2.4 Plug it in with your system

    • test locally with any pull request payload:

      http://0.0.0.0:<GIVE_PORT_NO>
      

      it should return "welcome" message

    • activate alice from your github repository

      • Create web-hook in github and set it to <IP_WHERE_ALICE_IS_LISTENING>:<PORT_NUMBER>/alice

      Example:

      image

Want to talk to me

Integrate me with Hubot. It's a talkative bot and all you need to know is a little bit of CoffeScript and Regular Expressions You can use alice with hubot to route tasks to and fro.

Yay! all set. let's rock


Drawing


Willing to Contribute

Please read CONTRIBUTING.md before submitting your pull requests. If you'd like to chat, stop by our slack team joinalice

Future plan

Focus on:

  • Continuous Integration
  • More Adapters like with HipChat, BitBucket. If you are using these or any other version control or communication tools, please come, let's discuss & build it together

Here is the full product board

Credits