Skip to content

Repository files navigation

the_scrumfather

The Scrumfather

Automates Jira ticket workflows from Slack message reactions.
Because manually creating Jira tickets is a crime against productivity, and The Scrumfather handles crime.

What It Does

I'll spare you the long description of what this beautiful piece of automation does. Basically what it prevents is your PM doing this to you.

for_cherished_customer

Just react to a bug report on Slack, then The Scrumfather will handle the rest.

Architecture

Slack Workspace
    │
    │ reaction_added
    ▼
The Scrumfather (Gin API)
    │
    ├── Verifies Slack signature
    ├── Enqueues job to Redis
    │
    ▼
Async Worker
    │
    ├── Reads original message
    ├── Checks for duplicates (no double-dipping)
    ├── Maps emoji → Jira config
    ├── Resolves users by email (same org, same family)
    ├── Creates Jira ticket
    ├── Links Slack conversation
    └── Notifies the chosen one
            │
            ▼
        Jira Cloud

Quick Start

# Clone
git clone https://github.com/whoisnjoguu/the-scrumfather.git
cd the-scrumfather

# Set up your environment
cp .env.example .env
# Fill in credentials (see below)

# Start the operation
docker compose up --build -d

# Expose locally for Slack
ngrok http 8080

# Seed your emoji mappings
curl.exe -X POST http://localhost:8080/admin/emoji-mappings ^
  -H "Content-Type: application/json" ^
  -d '{"emoji":"bug","issueType":"Bug","priority":"Medium","assignTo":""}'

Environment Variables

Variable Description
SLACK_BOT_TOKEN Your bot's OAuth token (xoxb-...)
SLACK_SIGNING_SECRET From Slack app Basic Information
JIRA_BASE_URL https://yourorg.atlassian.net
JIRA_EMAIL Service account email
JIRA_API_TOKEN Atlassian API token
JIRA_PROJECT_KEY e.g. ENG, MSFT
NOTIFICATION_MODE thread, dm, or silent

Notification Modes

Mode Behavior
thread Replies in the Slack thread.
dm Privately messages the reactor.
silent Creates the ticket with zero evidence.

API Endpoints

Method Path Description
POST /slack/events Slack webhook (signature-verified)
GET /health Health check
POST /admin/emoji-mappings Create/update emoji → Jira mapping
GET /admin/emoji-mappings List all mappings

Slack Setup

  1. Create app at https://api.slack.com/apps
  2. Add Bot Token Scopes: channels:history, channels:read, chat:write, reactions:read, users:read, users:read.email, im:write
  3. Enable Event Subscriptions → reaction_added
  4. Install to workspace
  5. Invite bot to channels: /invite @TheScrumfather

The Rules

  1. You do not talk about manually creating Jira tickets.
  2. You DO NOT talk about manually creating Jira tickets.
  3. If someone reacts with a mapped emoji, a ticket gets made. No exceptions.
  4. One reaction, one ticket. The Scrumfather doesn't stutter.
  5. The Scrumfather sees all. The Scrumfather knows all. The Scrumfather assigns accordingly.

About

Automate Jira ticket workflows from Slack message reactions.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages