Tutter - Plugin based Github robot

Build Status

Tutter is a web app that trigger actions based on Github events(push, pull_reqeust, release, issue, ...)

Features

  • Pluggable with custom actions
  • Supports multiple projects

Installation

gem install tutter

put a configuration file in /etc/tutter.yaml an example can be found under conf/tutter.yaml

Let's install the thanks action that thank anyone that creates an issue in your project.

tutter.yaml settings

  • name - username/projectname
  • access_token - github access token (can be generated here)
  • github_site - github website
  • github_api_enpoint - github api endpint
  • action - action you wish to use for the project
  • action_settings - whatever settings your action require

Create the Github webhook

Hooks can be configured just to send the event that you're interested in. The important part is that Payload URL points to the webserver running tutter

https://github.com/ORG/PROJECT/settings/hooks/new

Example of how the thanks demo-action look like. Tutter listen for issue events and posts back with a greeting. img

Build custom action

See thanks action

Required methods and their arguments

initialize

settings - contains a hash of action specific settings
client - Used to access the github api, all authentication is already done by tutter
project - Project name, eg jhaals/tutter
event - Event type
data - POST data that github send when a hook is triggered

run - Run action

Tutter uses octokit.rb to communicate with the Github API

Features to implement

  • Support multiple actions per project
  • Authenticate as a Github application
  • Features your're missing (please contribute)
  • Tests!