Skip to content

REFERENCE: Jira Cloud application that analyzes tickets and reports violations

Notifications You must be signed in to change notification settings

arielpartners/ticket-linter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STORY LINTER

Build Status

"Story Linter" is a Jira Cloud application built with Atlassian Connect. Checkout this video for a quick intro on Atlassian Connect Framework.

As a linter analyzes source code to identify and report issues, like potential bugs, stylistic errors and suspicious constructs, this Jira add-on will analyze your user stories and show warnings or alerts if any story does not follow (an opinionated) set of rules or format.

Screenshots

Screenshot

Screenshot

User Story Expected Format

The description of your Jira User Stories should be written following the well-known User Story template (see: User Stories with Examples and Template) and include an Acceptance Criteria which should be a bullet list of items that must be fulfilled to consider the story as done.

“As a [persona], I [want to], [so that].”

AC
- Acceptance Criteria 1
- Acceptance Criteria 2

E.g.

Sample User Story


Stack

Backend

  • Kotlin.
  • Sprint Boot 2.3.0.
  • MySQL 8.0.x or H2.
  • Atlassian Connect for Spring Boot Handles tasks like JWT authentication and signing, persistence of host details, installation and uninstallation callbacks, and serving the app descriptor.

Frontend

  • Gatsby.

MySQL setup

  • Create a MySQL database (or use an existing one, of course)
docker pull mysql:8.0.20
docker run --name mysql-covidio -p 3306:3306 -e MYSQL_ROOT_PASSWORD='pazz' -e MYSQL_ROOT_HOST='%' -v /Users/jmpr/ticket-linter/data/mysql:/var/lib/mysql -d mysql:8.0.20
  • Create a database schema covidio
create schema covidio;
  • Set an app user user
CREATE USER 'linter-app'@'%' IDENTIFIED BY 'T0P_S3CR3T';
GRANT ALL PRIVILEGES ON covidio.* TO 'linter-app'@'%' WITH GRANT OPTION;
  • Datasource configuration e.g. application-local-${profile}.yml:
spring:
  jpa:
    generate-ddl: true
    database-platform: org.hibernate.dialect.MySQL8Dialect
    show-sql: true
    hibernate:
      ddl-auto: update
  datasource:
    url: jdbc:mysql://localhost:3306/covidio
    driverClassName: com.mysql.jdbc.Driver
    username: linter-app
    password: T0P_S3CR3T

Running the backend

SPRING_PROFILES_ACTIVE=local-${profile} ./gradlew xdome-rest:bootRun

The database schema will be created/updated once you run the app.

If Liquibase lock remains stuck: https://stackoverflow.com/questions/15528795/liquibase-lock-reasons.

WORK IN PROGRESS

TODO

  1. Go through TODOs and FIXMEs in the code.
  2. Containerize application.
  3. Improve dev documentation.
  4. Improve user documentation e.g. what rules are being enforced.
  5. Add a web panel in order to allow a user to see the evaulation of a ticket without running a full scan.

About

REFERENCE: Jira Cloud application that analyzes tickets and reports violations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 74.5%
  • JavaScript 25.5%