# README
title: "Jira" lang: "en-US" draft: false description: "Learn about how to set up a VDP Jira component https://github.com/instill-ai/instill-core"
The Jira component is an application component that allows users to do anything available on Jira. It can carry out the following tasks:
- List Boards
- List Issues
- List Sprints
- Get Issue
- Get Sprint
- Create Issue
- Update Issue
- Create Sprint
- Update Sprint
Release Stage
Alpha
Configuration
The component definition and tasks are defined in the definition.json and tasks.json files respectively.
Setup
In order to communicate with Atlassian, the following connection details need to be
provided. You may specify them directly in a pipeline recipe as key-value pairs
within the component's setup
block, or you can create a Connection from
the Integration Settings
page and reference the whole setup
as setup: ${connection.<my-connection-id>}
.
Field | Field ID | Type | Note |
---|---|---|---|
Token (required) | token | string | Fill in your Jira API token. You can generate one from your Jira account "settings > security > API tokens". |
Base URL (required) | base-url | string | Fill in your Jira base URL. For example, if your Jira URL is "https://mycompany.atlassian.net/...", then your base URL is https://mycompany.atlassian.net. |
Email (required) | email | string | Fill in your Jira email address. |
Supported Tasks
List Boards
List all boards in Jira
Input | ID | Type | Description |
---|---|---|---|
Task ID (required) | task | string | TASK_LIST_BOARDS |
Project Key or ID | project-key-or-id | string | This filters results to boards that are relevant to a project. Relevance meaning that the JQL filter defined in board contains a reference to a project. |
Board Type | board-type | string | The type of board, can be: scrum, kanban, simple. Default is simple |
Name | name | string | Name filters results to boards that match or partially match the specified name. Default is empty |
Start At | start-at | integer | The starting index of the returned boards. Base index: 0. Default is 0 |
Max Results | max-results | integer | The maximum number of boards to return. Default is 50 |
Output | ID | Type | Description |
---|---|---|---|
Boards (optional) | boards | array[object] | A array of boards in Jira |
Start At | start-at | integer | The starting index of the returned boards. Base index: 0 |
Max Results | max-results | integer | The maximum number of boards |
Total | total | integer | The total number of boards |
Is Last | is-last | boolean | Whether the last board is reached |
Output Objects in List Boards
Boards
Field | Field ID | Type | Note |
---|---|---|---|
ID | id | integer | The ID of the board |
Name | name | string | The name of the board |
Self | self | string | The URL of the board |
Type | type | string | The type of the board |
List Issues
List issues in Jira
Input | ID | Type | Description |
---|---|---|---|
Task ID (required) | task | string | TASK_LIST_ISSUES |
Board Name (required) | board-name | string | The name of the board |
Range | range | object | Choose the range of issues to return. Default is all |
Start At | start-at | integer | The starting index of the returned boards. Base index: 0. Default is 0 |
Max Results | max-results | integer | The maximum number of boards to return. Default is 50 |
The range
Object
Range
range
must fulfill one of the following schemas:
All
All issues
Field | Field ID | Type | Note |
---|---|---|---|
Range | range | string | Must be "All" |
Standard Issues
Standard issues
Field | Field ID | Type | Note |
---|---|---|---|
Range | range | string | Must be "Standard Issues" |
Epics only
Epics only
Field | Field ID | Type | Note |
---|---|---|---|
Range | range | string | Must be "Epics only" |
In Backlog Only
In backlog only
Field | Field ID | Type | Note |
---|---|---|---|
Range | range | string | Must be "In backlog only" |
Issues of an Epic
Issues of an epic
Field | Field ID | Type | Note |
---|---|---|---|
Epic Key | epic-key | string | The Key of the epic, e.g. JRA-1330 |
Range | range | string | Must be "Issues of an epic" |
Issues of a Sprint
Issues of a sprint
Field | Field ID | Type | Note |
---|---|---|---|
Range | range | string | Must be "Issues of a sprint" |
Sprint Name | sprint-name | string | The name of the sprint |
Issues without Epic Assigned
Issues without Epic Assigned
Field | Field ID | Type | Note |
---|---|---|---|
Range | range | string | Must be "Issues without epic assigned" |
JQL Query
JQL query
Field | Field ID | Type | Note |
---|---|---|---|
JQL | jql | string | The JQL query. For example, type = "Task" AND status = "Done" . For more information, see Advanced searching |
Range | range | string | Must be "JQL query" |
Output | ID | Type | Description |
---|---|---|---|
Issues (optional) | issues | array[object] | A array of issues in Jira |
Start At | start-at | integer | The starting index of the returned boards. Base index: 0 |
Max Results | max-results | integer | The maximum number of boards |
Total | total | integer | The total number of boards |
Output Objects in List Issues
Issues
Field | Field ID | Type | Note |
---|---|---|---|
Description | description | string | The description of the issue |
Fields | fields | object | The fields of the issue. All navigable and Agile fields are returned |
ID | id | string | The ID of the issue |
Issue Type | issue-type | string | The type of the issue, can be: Task , Epic |
Key | key | string | The key of the issue, e.g. JRA-1330 |
Self | self | string | The URL of the issue |
Status | status | string | The status of the issue, can be: To Do , In Progress , Done |
Summary | summary | string | The summary of the issue |
List Sprints
List sprints in Jira
Input | ID | Type | Description |
---|---|---|---|
Task ID (required) | task | string | TASK_LIST_SPRINTS |
Board ID (required) | board-id | integer | The ID of the board |
Start At | start-at | integer | The starting index of the returned boards. Base index: 0. Default is 0 |
Max Results | max-results | integer | The maximum number of boards to return. Default is 50 |
Output | ID | Type | Description |
---|---|---|---|
Sprints (optional) | sprints | array[object] | A array of sprints in Jira |
Start At | start-at | integer | The starting index of the returned boards. Base index: 0 |
Max Results | max-results | integer | The maximum number of boards |
Total | total | integer | The total number of boards |
Output Objects in List Sprints
Sprints
Field | Field ID | Type | Note |
---|---|---|---|
Complete Date | complete-date | string | The complete date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
End Date | end-date | string | The end date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
Goal | goal | string | The Goal of the sprint |
ID | id | integer | The ID of the sprint |
Name | name | string | The name of the sprint |
Origin Board ID | origin-board-id | integer | The ID of the origin board |
Self | self | string | The URL of the sprint |
Start Date | start-date | string | The start date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
State | state | string | The state of the sprint, can be: active , closed , future |
Get Issue
Get an issue in Jira. The issue will only be returned if the user has permission to view it. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic.
Input | ID | Type | Description |
---|---|---|---|
Task ID (required) | task | string | TASK_GET_ISSUE |
Issue Key (required) | issue-key | string | The key of the issue, e.g. JRA-1330 |
Update History | update-history | boolean | Whether the action taken is added to the user's Recent history, as shown under Your Work in Jira. |
Output | ID | Type | Description |
---|---|---|---|
ID | id | string | The ID of the issue |
Key | key | string | The key of the issue, e.g. JRA-1330 |
Self | self | string | The URL of the issue |
Fields | fields | object | The fields of the issue. All navigable and Agile fields are returned |
Issue Type (optional) | issue-type | string | The type of the issue, can be: Task , Epic |
Summary (optional) | summary | string | The summary of the issue |
Description (optional) | description | string | The description of the issue |
Status (optional) | status | string | The status of the issue, can be: To Do , In Progress , Done |
Get Sprint
Get a sprint in Jira. The sprint will only be returned if the user can view the board that the sprint was created on, or view at least one of the issues in the sprint.
Input | ID | Type | Description |
---|---|---|---|
Task ID (required) | task | string | TASK_GET_SPRINT |
Sprint ID (required) | sprint-id | integer | The ID of the sprint. The sprint will only be returned if you can view the board that the sprint was created on, or view at least one of the issues in the sprint. |
Output | ID | Type | Description |
---|---|---|---|
ID (optional) | id | integer | The ID of the sprint |
Self (optional) | self | string | The URL of the sprint |
State (optional) | state | string | The state of the sprint, can be: active , closed , future |
Name (optional) | name | string | The name of the sprint |
Start Date (optional) | start-date | string | The start date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
End Date (optional) | end-date | string | The end date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
Complete Date (optional) | complete-date | string | The complete date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
Origin Board ID (optional) | origin-board-id | integer | The ID of the origin board |
Goal (optional) | goal | string | The Goal of the sprint |
Create Issue
Create an issue in Jira
Input | ID | Type | Description |
---|---|---|---|
Task ID (required) | task | string | TASK_CREATE_ISSUE |
Project Key (required) | project-key | string | The key of the project, e.g. INS |
Issue Type (required) | issue-type | object | The type of the issue, can be: Task , Epic , Subtask , etc. |
Summary | summary | string | The summary of the issue |
Description | description | string | The description of the issue |
The issue-type
Object
Issue Type
issue-type
must fulfill one of the following schemas:
Epic
Epic
Field | Field ID | Type | Note |
---|---|---|---|
Issue Type | issue-type | string | Must be "Epic" |
Task
Task
Field | Field ID | Type | Note |
---|---|---|---|
Issue Type | issue-type | string | Must be "Task" |
Subtask
Subtask
Field | Field ID | Type | Note |
---|---|---|---|
Issue Type | issue-type | string | Must be "Subtask" |
Parent Key | parent-key | string | The key of the parent issue, e.g. JRA-1330 |
Other
Other
Field | Field ID | Type | Note |
---|---|---|---|
Issue Type | custom-issue-type | string | The type of the issue, can be: Task , Epic , Subtask , etc. |
Issue Type | issue-type | string | Must be "Other" |
Output | ID | Type | Description |
---|---|---|---|
ID | id | string | The ID of the issue |
Key | key | string | The key of the issue, e.g. JRA-1330 |
Self | self | string | The URL of the issue |
Fields | fields | object | The fields of the issue. All navigable and Agile fields are returned |
Issue Type (optional) | issue-type | string | The type of the issue, can be: Task , Epic |
Summary (optional) | summary | string | The summary of the issue |
Description (optional) | description | string | The description of the issue |
Status (optional) | status | string | The status of the issue, can be: To Do , In Progress , Done |
Update Issue
Update an issue in Jira
Input | ID | Type | Description |
---|---|---|---|
Task ID (required) | task | string | TASK_UPDATE_ISSUE |
Issue Key (required) | issue-key | string | The key of the issue, e.g. JRA-1330 |
Notify Users | notify-users | boolean | Whether to notify users |
Update | update | object | Update an issue in Jira |
The update
Object
Update
update
must fulfill one of the following schemas:
Custom Update
Custom update
Field | Field ID | Type | Note |
---|---|---|---|
Update | update | string | Must be "Custom Update" |
Update Fields | update-fields | array | The fields to update |
Move Issue to Epic
Move issue to epic
Field | Field ID | Type | Note |
---|---|---|---|
Epic Key | epic-key | string | The key of the epic, e.g. JRA-1330 |
Update | update | string | Must be "Move Issue to Epic" |
Output | ID | Type | Description |
---|---|---|---|
ID | id | string | The ID of the issue |
Key | key | string | The key of the issue, e.g. JRA-1330 |
Self | self | string | The URL of the issue |
Fields | fields | object | The fields of the issue. All navigable and Agile fields are returned |
Issue Type (optional) | issue-type | string | The type of the issue, can be: Task , Epic |
Summary (optional) | summary | string | The summary of the issue |
Description (optional) | description | string | The description of the issue |
Status (optional) | status | string | The status of the issue, can be: To Do , In Progress , Done |
Create Sprint
Create a sprint in Jira
Input | ID | Type | Description |
---|---|---|---|
Task ID (required) | task | string | TASK_CREATE_SPRINT |
Board Name (required) | board-name | string | The name of the board |
Name (required) | name | string | The name of the sprint |
Goal (required) | goal | string | The goal of the sprint |
Start Date (required) | start-date | string | The start date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
End Date (required) | end-date | string | The end date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
Output | ID | Type | Description |
---|---|---|---|
ID | id | integer | The ID of the sprint |
Self | self | string | The URL of the sprint |
State (optional) | state | string | The state of the sprint, can be: active , closed , future |
Name (optional) | name | string | The name of the sprint |
Start Date (optional) | start-date | string | The start date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
End Date (optional) | end-date | string | The end date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
Complete Date (optional) | complete-date | string | The complete date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
Origin Board ID (optional) | origin-board-id | integer | The ID of the origin board |
Goal (optional) | goal | string | The Goal of the sprint |
Update Sprint
Update a sprint in Jira
Input | ID | Type | Description |
---|---|---|---|
Task ID (required) | task | string | TASK_UPDATE_SPRINT |
Sprint ID (required) | sprint-id | integer | The ID of the sprint |
Name (required) | name | string | The name of the sprint |
Goal | goal | string | The goal of the sprint |
Start Date (required) | start-date | string | The start date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
End Date (required) | end-date | string | The end date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
Current State (required) | current-state | string | The current state of the sprint, can be: future , active , closed |
Enter Next State | enter-next-state | boolean | Whether to enter the next state. If true , the sprint will enter the next state, i.e., future -> active -> closed |
Output | ID | Type | Description |
---|---|---|---|
ID | id | integer | The ID of the sprint |
Self | self | string | The URL of the sprint |
State (optional) | state | string | The state of the sprint, can be: active , closed , future |
Name (optional) | name | string | The name of the sprint |
Start Date (optional) | start-date | string | The start date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
End Date (optional) | end-date | string | The end date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
Complete Date (optional) | complete-date | string | The complete date of the sprint, e.g. 2018-03-05 (default 00:00 UTC+0). To adjust your time zone, please provide a more detailed RFC3339 format like 2018-03-05T09:00:00Z0000 |
Origin Board ID (optional) | origin-board-id | integer | The ID of the origin board |
Goal (optional) | goal | string | The Goal of the sprint |
Recipe for the Your Project Management Assistant pipeline.
version: v1beta
component:
jira-0:
type: jira
task: TASK_LIST_ISSUES
input:
board-name: ${variable.board-name}
max-results: 50
range:
range: All
start-at: 0
setup:
base-url: ${variable.base-url}
email: ${variable.jira-email}
token: ${secret.jira}
openai-0:
type: openai
task: TASK_TEXT_GENERATION
input:
model: gpt-4o-mini
n: 1
prompt: |-
From this list of issues:
${jira-0.output.issues}
Summarise the next action items and reference the relevant issues.
Category:
[list of relevant issues]
response-format:
type: text
system-message: |-
You are an expert project manager. Classify the issues into one of the following categories: ["feature", "bug", "refactor", "cancelled"]
If anything is a breaking change, make it a top priority.
temperature: 1
top-p: 1
setup:
api-key: ${secret.INSTILL_SECRET}
variable:
base-url:
title: Jira Base URL
description: |+
Your Jira base URL i.e. https://<_YOUR_COMPANY_>.atlassian.net
instill-format: string
board-name:
title: Jira Board Name
description: |+
The name of your Jira board i.e. "KANBAN board".
instill-format: string
jira-email:
title: Jira Email
description: The email you are using for Jira i.e. [email protected]
instill-format: string
output:
output:
title: Output
value: ${openai-0.output.texts}