A bot for code monitoring and more...
Hi, I'm alice, made with ❤️ on top of python using Flask. 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)
Imagine your standard release day and a sudden roadblock is encountered. Everyone in your team is running around with questions like:
- Which build is breaking the feature/code?
- Did we miss any steps while deploying code to staging?
- How had it been merged without review?
- How did it get passed through test cases, didn't they run?
- Which code to revert to, to fix this quickly?
- Who should I reach out to, for this?
- Were these configuration or dependency changes?
- Were these changes well informed to 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.
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.
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
For all sensitive branches (Eg. master, qa, develop)
- Code Review
- Remind team members to follow Guidelines
- Auto close suspicious Pull Request
- Alerts on modification of sensitive file(s)
- Notify on specific action on a Pull Request
- Custom check implementations
Note: I am currently implemented for Github & Slack users only. However I can be expanded to support other platforms as well. Please read here
-
Installation:
pip install alice-core
-
Getting Started:
2.1 Create your team specific input config file setup config file
2.2. Start Alice (any 1 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
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.3 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>/alice
Example:
- Create web-hook in github and set it to
-
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.
- To use alice with hubot, add/edit coffee scripts in the scripts folder
Yay! all set. let's rock
Please read CONTRIBUTING.md before submitting your pull requests. If you'd like to chat, stop by our slack team joinalice
-
More Features
- Notify QA signOff
- Notify Code Freeze
-
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
- Problems at work 😄
- Hitesh Mantrala for giving it a start.
- Akshay Goel for the incessant support.
- Satyanarayan Saini & Yashwanth Kumar for having faith in me.
- Team MoEngage for helping me pass through User Acceptance Testing.
- Jenkins Community for ideas
- GitHub Api docs
- Slack Api docs
- Hubot community