CollabyBot
A Collaboration Tool For Software Development
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
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
Extend or customize your website layout by reusing React. Docusaurus can be extended while reusing the same header and footer.
:robot:CollabyBot integrates the features of Github notifications, Jira notifications and personal task tracker for simplier collaboration on a software project.
sidebar_position: 1
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 🔧
DigitalOcean for Ubuntu cloud server
Testing 🔴 :green_circle:
Helpful documentation 📄
GitHub documentation:
Slack documentation:
Collaborators 👥
Sofia Drachuk, Dan Kalyniy, Nahara Johnson, Marshall Walsh
Installation Instructions
- Download the Discord bot and add it to your server.
- For GitHub functionality, add the following webhooks to any repositories you want to receive notifications from:
- https://collabybot.com:8000/webhook/commits (push events only)
- https://collabybot.com:8000/webhook/issues (issue events only)
- https://collabybot.com:8000/webhook/pull-request (pull request events only)
- 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.