Skip to main content

CollabyBot

A Collaboration Tool For Software Development

Easy to Use

Easy to Use

Docusaurus was designed from the ground up to be easily installed and used to get your website up and running quickly.

Focus on What Matters

Focus on What Matters

Docusaurus lets you focus on your docs, and we'll do the chores. Go ahead and move your docs into the docs directory.

Powered by React

Powered by React

Extend or customize your website layout by reusing React. Docusaurus can be extended while reusing the same header and footer.

Open in Codespaces

Logo

CollabyBot

Add CollabyBot to Discord Add GitHub app Report Issue on Jira Deploy Docs Documentation Website Link

:robot:CollabyBot integrates the features of Github notifications, Jira notifications and personal task tracker for simplier collaboration on a software project.


System Overview

Project Abstract

CollabyBot is an application for communication and collaboration between contributors to software projects in chat applications such as Discord. Its main feature will be real-time notifications from GitHub repositories, announcing events such as pull requests, issues, and releases in a team’s Discord server. These updates will be customizable so that users can choose which GitHub notifications they want to get and what channels they should be posted in. CollabyBot will also be integrated with Jira, allowing users to keep track of the team’s progress in a Jira workspace. Users will be able to view the current sprint and assign tickets to user from the chat application using commands. The main goal of this application is to provide multiple utilities for software development teams in a single place and to improve communication between team members.

High-Level Requirements

To use CollabyBot, users will need to install the bot on their Discord server. It will be able to post notifications of events in the GitHub repository in the server and respond to user commands. It will receive the events over webhooks that the user adds to their GitHub repository. CollabyBot will also include commands for interacting with a Jira workspace from Discord. Users will be able to get information about Jira tickets, asssign and unassign them to teammates, and get information about their project's active sprint. The bot process that is in charge of handling commands and communicating with GitHub and Jira will be hosted on a web server which is inaccessible to users.

Conceptual Design

We will use GitHub and Jira APIs to interact with repositories and workspaces, and the APIs of Discord and/or Slack to post notifications and implement user commands. Authentication tokens and other variables will be stored in the .env file and be included in the gitignore file for security purposes. We will host a web server on Ubuntu using the cloud service DigitalOcean and it will be hosted at the domain www.collabybot.com. DNS will be configured using Cloudflare, which will also provide our web server with SSL/TLS encryption. The web server will handle all HTTP POST requests from webhooks and GET requests from the Discord/Slack APIs. Our web server will use signatures to make sure that POST requests were sent from the authorized app. Webhook endpoints will be secured using HTTPS.

Background

When researching similar projects, we found a bidirectionally-integrated Slack/GitHub app called Axolo which is mainly a GitHub that has many advantages over the official GitHub alternative. Our app will offer additional functionality by making GitHub notifications customizable and integrating with Jira as well. We will also make the bot more interactive by providing commands to request information from the bot and perform actions in Jira.

Languages:

Python

Tools 🔧

GitHub API

Discord API

Slack API

Jira library

PyGitHub

DigitalOcean for Ubuntu cloud server

Testing 🔴 :green_circle:

Slack testing workspace

Helpful documentation 📄

GitHub documentation:

Webhooks

OAuth Apps

Webhook Configuration

Slack documentation:

OAuth Flow

Slash Commands

Collaborators 👥

Sofia Drachuk, Dan Kalyniy, Nahara Johnson, Marshall Walsh

Installation Instructions

  1. Download the Discord bot and add it to your server.
  2. For GitHub functionality, add the following webhooks to any repositories you want to receive notifications from:
    1. https://collabybot.com:8000/webhook/commits (push events only)
    2. https://collabybot.com:8000/webhook/issues (issue events only)
    3. https://collabybot.com:8000/webhook/pull-request (pull request events only)
  3. For Jira functionality, get a personal access token and register it with CollabyBot using the following command: /jira-add-token _your email address https://_workspace-name_.atlassian.net/ your access token.