We want to add project management as a category of integrations to Tramline. This is so that we can track tickets associated with each release and establish the completeness or readiness of the release by associating tickets and PRs/commits in a single place.
Requirements
To begin with, we'll target Jira as our first project management integration. We'll split this feature into 3 tickets:
Adding a new category of "Project Management" integrations and connecting Jira with some basic queries
Using this integration layer to build out a "release readiness" feature that will track tickets and labels per release
Adding tokenization parameters to Tramline to pass dynamic strings to external integrations (including Jira integrations)
For this ticket, we'll only focus on #1.
Connect
We should add a new category of integrations called "Project Management"
We should allow users to connect that integration (using the Jira-preferred method of authentication)
In the auth flow, select a specific Jira org if you’re a member of multiple (otherwise will be pre-selected)
Setup
Once integrated, we should ask users to select the Jira projects we need to pull tickets from (more than one project allowed)
Specify any additional columns that signify a “done” state for tickets
Tramline should pre-select any columns marked in Jira with “done” states
Configure
We will allow people to setup "Release Filters"
These are basically key-value pairs, that represent all the labels or fix versions that will be parsed and filtered to be associated with any release.
For example, one can configure a release filters with "label":
"label: product"
"label: ops"
"label: {release_version}"
One can also configure release filters with "fix versions":
"fix_version: {release_version}"
In the above example, the {release_version} is a tokenization parameter we'd have to introduce in Tramline. Which can be a different issue (see point 3 above), and can be added later. For now, we'll just allow static strings.
API
Pull projects for integration connection
Pull "done" status columns
Pull tickets for projects based on configured release filters
Acceptance Criteria
New integration category, connection flow
"Configure" button that allows setting up project, done columns & release filters
Only backend APIs for everything else, tested via fixtures
Unit tests for the rest.
Additional notes
How to setup Jira
Under features for your Project, enable Releases:
This enables "Fix versions" for every card:
For all intents and purposes, one project can only have one board
States for a ticket represent columns in the board by default (at least on kanban)
References
Take a look at how Bitbucket works and is configured
The configuration for Jira setup will be on an integration / AppConfig level (not on a train level)
Context
We want to add project management as a category of integrations to Tramline. This is so that we can track tickets associated with each release and establish the completeness or readiness of the release by associating tickets and PRs/commits in a single place.
Requirements
To begin with, we'll target Jira as our first project management integration. We'll split this feature into 3 tickets:
For this ticket, we'll only focus on #1.
Connect
Setup
Configure
In the above example, the
{release_version}
is a tokenization parameter we'd have to introduce in Tramline. Which can be a different issue (see point 3 above), and can be added later. For now, we'll just allow static strings.API
Acceptance Criteria
Additional notes
How to setup Jira
References