"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.
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.
- 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.
- Gatsby.
- 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
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
- Go through TODOs and FIXMEs in the code.
- Containerize application.
- Improve dev documentation.
- Improve user documentation e.g. what rules are being enforced.
- Add a web panel in order to allow a user to see the evaulation of a ticket without running a full scan.