Skip to content
This repository has been archived by the owner on Aug 20, 2021. It is now read-only.
/ robin Public archive
forked from tatey/robin

A Slack bot that assigns tasks round-robin.

License

Notifications You must be signed in to change notification settings

thelookoutway/robin

 
 

Repository files navigation

Robin Build status

A Slack bot that assigns tasks round-robin.

You could use Robin to:

  • Assign someone to update a library when a new release happens.
  • Assign someone to do an ad-hoc task.
  • Assign someone to review a pull request.
  • Determine who is going first in standup today.

Robin works by:

  • Exposing a webhook for creating tasks.
  • Tasks are created against lists. Each time a task is created it gets assigned round-robin to users on that list.
  • The assigned user can accept, reassign, or archive the task.
  • There can be many lists. Each list has a name, users, and posts messages to a channel.

We recommend using Zapier as an intermediary for services which don't expose webhooks as first class citizens.

HTTP API

Create a new task via the webhook:

$ curl -X POST \
       -d 'description=You should do this thing!' \
       'https://example.com/lists/:webhook_token/tasks'

Developers

System Dependencies

  • Ruby 2.7.4
  • Postgres 10
  • direnv (optional, recommended)

Postgres using Docker

Before doing this you should have read the Configuration section regarding the .envrc.example file. It also recommended that you're using direnv.

Copy the extra environment file.

$ cp .envrc.docker{.example,}

Start the services.

$ docker-compose up -d

Configuration

See .envrc.example for the expected environment variables. The example values have been used for testing.

Development

$ bin/setup
$ bin/rails server -p 3000

Testing

$ bin/rspec

Deploying

This application is automatically deployed when commits are pushed to the master branch and the tests on the master branch pass.

Copyright

Copyright (c) 2017-18 Five.Good.Friends. Pty Ltd. All rights reserved. Licensed under the MIT license.

Languages

  • Ruby 89.9%
  • Nix 9.2%
  • Shell 0.9%