Skip to main content

Use Case Descriptions

Use Case #1

As a user, I want to be able to track multiple repositories in the same server/workspace, so I can track all of my teams' project in one place.

  1. The user sends the /add owner/repo1 command to add a GitHub repository called repo1 to CollabyBot
  2. The user sends the commands /pull-requests repo1, /commits repo1, and /issues repo1 in the #repo1 channel to receive notifications from the repository repo1 in a dedicated channel
  3. The user sends the /add owner/repo2 command to add a GitHub repository called repo2 to CollabyBot
  4. The user sends the commands /pull-requests repo2, /commits repo2, and /issues repo2 in the #repo2 channel to receive notifications from the repository repo2 in a dedicated channel

Use Case #2

As a user, I want to be able to subscribe certain channels in my chat server to certain types of GitHub events, so that a single channel doesn't get clogged with every notification.

  1. The user sends the /pull-request repo command from a channel called pull-requests in a chat server/workspace that has CollabyBot installed
  2. The bot adds that channel's ID to a list of subscribers to the pull request webhook for repo
  3. The bot responds with a message stating that the pull-requests channel is now subscribed to pull request events from repo
  4. Notifications of pull request events from repo will be posted to the pull-requests channel from that point on

Use Case #3

As a user, I want to be able to see all of the open pull requests in my repository, so I can see what needs to be reviewed without opening GitHub.

  1. The user sends the /open-pull-requests repo command in a chat server/workspace that has CollabyBot installed
  2. The bot responds with a list of repo's open pull requests with links included

Use Case #4

As a user, I want to be able get information about a specific ticket on demand, so that I can check its status without having to open Jira.

  1. The user sends the /jira ticketID command in a chat server/workspace that has CollabyBot installed
  2. The bot responds with a message containing the ticket's summary, description, status, assignee, parent epic

Use Case #5

As a user, I want to be able to view the active sprint's backlog from a chat server/workspace, so that I can see what work needs to be done without opening Jira.

  1. The user sends the /sprint projectID command in a chat server/workspace that has CollabyBot installed
  2. The bot gets the active sprint for projectID in Jira using the Jira API
  3. The bot extracts the sprint's backlog as a list of tickets using the Jira API
  4. The bot extracts the name, ID, assignee, and status of each ticket in the list
  5. The bot creates a burndown chart by getting the story points of each ticket, calculating how many have been completed for each day of the sprint, and plotting the values along with a guideline representing the ideal pace of completion
  6. The bot responds to the command with a formatted list of tickets that displays their name, ID, assignee, and status along with an image of the burndown chart.

Use Case #6

As s user, I want to be able to assign a Jira ticket to a team member using a bot command, so that I can quickly assign tickets without having to open Jira.

  1. The user sends the /jira-assign ticket ID user command from a chat server/workspace with CollabyBot installed
    1. If the ticket is unassigned: The bot reassigns the ticket to user
    2. If the ticket has been already assigned to someone: The bot tells the user who it is already assigned to and asks if they want to reassign it touser
      1. The user replies "yes" or "no"
        1. If no: The does not reassign the ticket
        2. If yes: see 2.i.
  2. The bot changes the assignee in Jira
  3. The bot sends a message stating that the ticket was successfully assigned to user