Giter Site home page Giter Site logo

babel-bot's Introduction

babel-bot

A bot used by the Babel team to automate common tasks in GitHub repositories. Allows taking action on events triggered from the GitHub webhooks API.

The bot is build as an AWS Lambda function, using AWS API Gateway to map the requests to an endpoint.

Features

  • Create a new comment on newly opened issues (if not in the org)
  • Reply to issue with canned response when Needs Info label is added
  • Notify committer in PR of test failures in TravisCI, and add OS/node.js version that failed, with direct link to log
  • Add Has PR label to issues that have been referenced in a PR
  • Add command to move issues to other repo (@babel-bot move to babel/babylon)
  • Deletes issue comments that are just +1/-1

Future Bot Ideas

Adding a New Event

  1. Look at the list of GitHub webhook events to determine which your rule should respond to.
  2. Find (or create) a folder under src/handlers with the name matching the name of the GitHub event
  3. Create a new JS file under the directory, with the name matching the action or state (dependening on the shape of the GitHub payload) you want your code to be triggered for
  4. Export a default function that accepts 1 argument, which will be the payload from GitHub each time the event is triggered.

Examples of existing event rules can be found in src/handlers.

Setting up AWS Lamdba/API Gateway as a Test Environment

Visit the guide for detailed instructions.

Unit-Testing

Examples of how to test a handler can be seen in src/handlers/issues/__tests__.

Deploying a New Version to AWS Lamdba

This process is currently manual, but will likely be automated in the future.

  1. Run yarn run package, which will create function.zip in the root of the repository
  2. Login to the AWS console, and find the function in the Lambda dashboard, under Functions
  3. Click the Upload button under the Code tab (Code Entry Type should be set to Upload a .ZIP file)
  4. Click Save

babel-bot's People

Contributors

aaronang avatar danharper avatar hzoo avatar rajikaimal avatar

Watchers

 avatar

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.