Inspiration

I have discovered Atlassian tools such as Forge during previous Codegeist challenge. But interested with generative AI, I have decided recently to showcase some use cases of AI benefits on Atlassian JIRA Backlog issues

What it does

It helps Atlassian Jira users to analyze Backlog Issues, by proposing some story points adjustments based on description and/or summary, enable to translate these description/summary as well on demand and display results on Project Page

How we built it

I have studied some code example published by Atlassian team but its code mixes typescript and javascript. I have decided to initiate a new codebase, with OpenAI integration from the Bootstrap example, but coded it in full typescript ts/tsx only in order to develop the use cases of my project

  • The development has been performed using Forge client (create, deploy, install, logs, variables,...) commands on WSL (Windows Subsystem for Linux) Debian Docker (not Desktop) interacting with Atlassian Developer Cloud JIRA service

  • The frontend has involved @Atlaskit dependencies ( css, form, label, select, spinner, textfield,...) with @forge/bridge module

  • The Backend has involved several @forge librairies : events/queue, resolver, api/storage,...

The user has to activate/install the BacklogIssuesHelper Application on his/her Atlassian Jira Project and he can then interact with frontend, clicking on buttons to launch dedicated services such as storypoint suggestion, summary/description dynamic translation,...

Challenges we ran into

  • librairies npm installation issue > fix by adding special argument

  • typescript code control constraint on frontend (+backend) > fix by adding special attribute in package.json

  • WSL (Windows Subsystem for Linux) Forge login problem due long API token interactive specification fails> fix by using environment variables

  • OpenAI GPT service response is bases on various (see examples below) formulation phrases as a human agent would use. Hence it has been necessary to introduce appropriate Regular Expression to extract the storyPoints value.

xxxx the story point of user story YYY would be (either is ) N.

xxxx the user story XXXX story points would be ( either is) estimated as N.

  • Warning : on Test Free Plan, OpenAI exchanges will sometimes fail due to rate limit issue (3 calls per minute, requiring to wait for 20s)

Rate limit reached for gpt-3.5-turbo in organization org-NNNNNNNNNNNN on requests per min. Limit: 3 / min. Please try again in 20s.....

Accomplishments that we're proud of

  • Minimum Viable Product (MVP) of a Frontend Application managed thru Forge client commands, activable on Atlassian Jira Project and enabling to assist end users to analyze their Backlog issues,: translate their summaries, suggests storypoints based on summaries/descriptions

What we learned

  • Atlassian Jira Forge Application Development (@Atlaskit, @forge,...) and Installation with Forge Cli command lines

  • Optimize integration of potential long run of AI API calls

What's next for BacklogIssueHelper

  • finalize and enhance OpenAI prompts for better storypoints estimation

  • take also into account optional user hours estimation for some issues input through the UI

  • activate paid plan to get better results

  • enhance Frontend UI

Built With

Share this project:

Updates