jira

package
v0.29.0-beta Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2024 License: MIT Imports: 20 Imported by: 0

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-boards)
- [List Issues](#list-issues)
- [List Sprints](#list-sprints)
- [Get Issue](#get-issue)
- [Get Sprint](#get-sprint)
- [Create Issue](#create-issue)
- [Update Issue](#update-issue)
- [Create Sprint](#create-sprint)
- [Update Sprint](#update-sprint)

## Release Stage

`Alpha`

## Configuration

The component definition and tasks are defined in the [definition.json](https://github.com/instill-ai/component/blob/main/application/jira/v0/config/definition.json) and [tasks.json](https://github.com/instill-ai/component/blob/main/application/jira/v0/config/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**](https://www.instill.tech/docs/vdp/integration)
page and reference the whole `setup` as `setup:
${connection.<my-connection-id>}`.

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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.  |

</div>




## Supported Tasks

### List Boards

List all boards in Jira

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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 |
</div>






<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Output | ID | Type | Description |
| :--- | :--- | :--- | :--- |
| [Boards](#list-boards-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 |
</div>

<details>
<summary> Output Objects in List Boards</summary>

<h4 id="list-boards-boards">Boards</h4>

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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 |
</div>
</details>

### List Issues

List issues in Jira

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Input | ID | Type | Description |
| :--- | :--- | :--- | :--- |
| Task ID (required) | `task` | string | `TASK_LIST_ISSUES` |
| Board Name (required) | `board-name` | string | The name of the board |
| [Range](#list-issues-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 |
</div>




<details>
<summary>The <code>range</code> Object </summary>

<h4 id="list-issues-range">Range</h4>

`range` must fulfill one of the following schemas:

<h5 id="list-issues-all"><code>All</code></h5>

All issues

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Field | Field ID | Type | Note |
| :--- | :--- | :--- | :--- |
| Range | `range` | string |  Must be `"All"`   |
</div>

<h5 id="list-issues-standard-issues"><code>Standard Issues</code></h5>

Standard issues

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Field | Field ID | Type | Note |
| :--- | :--- | :--- | :--- |
| Range | `range` | string |  Must be `"Standard Issues"`   |
</div>

<h5 id="list-issues-epics-only"><code>Epics only</code></h5>

Epics only

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Field | Field ID | Type | Note |
| :--- | :--- | :--- | :--- |
| Range | `range` | string |  Must be `"Epics only"`   |
</div>

<h5 id="list-issues-in-backlog-only"><code>In Backlog Only</code></h5>

In backlog only

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Field | Field ID | Type | Note |
| :--- | :--- | :--- | :--- |
| Range | `range` | string |  Must be `"In backlog only"`   |
</div>

<h5 id="list-issues-issues-of-an-epic"><code>Issues of an Epic</code></h5>

Issues of an epic

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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"`   |
</div>

<h5 id="list-issues-issues-of-a-sprint"><code>Issues of a Sprint</code></h5>

Issues of a sprint

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Field | Field ID | Type | Note |
| :--- | :--- | :--- | :--- |
| Range | `range` | string |  Must be `"Issues of a sprint"`   |
| Sprint Name | `sprint-name` | string |  The name of the sprint  |
</div>

<h5 id="list-issues-issues-without-epic-assigned"><code>Issues without Epic Assigned</code></h5>

Issues without Epic Assigned

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Field | Field ID | Type | Note |
| :--- | :--- | :--- | :--- |
| Range | `range` | string |  Must be `"Issues without epic assigned"`   |
</div>

<h5 id="list-issues-jql-query"><code>JQL Query</code></h5>

JQL query

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Field | Field ID | Type | Note |
| :--- | :--- | :--- | :--- |
| JQL | `jql` | string |  The JQL query. For example, `type = "Task" AND status = "Done"`. For more information, see <a href="https://support.atlassian.com/jira-software-cloud/docs/what-is-advanced-search-in-jira-cloud/">Advanced searching</a>  |
| Range | `range` | string |  Must be `"JQL query"`   |
</div>
</details>

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Output | ID | Type | Description |
| :--- | :--- | :--- | :--- |
| [Issues](#list-issues-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 |
</div>

<details>
<summary> Output Objects in List Issues</summary>

<h4 id="list-issues-issues">Issues</h4>

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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 |
</div>
</details>

### List Sprints

List sprints in Jira

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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 |
</div>






<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Output | ID | Type | Description |
| :--- | :--- | :--- | :--- |
| [Sprints](#list-sprints-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 |
</div>

<details>
<summary> Output Objects in List Sprints</summary>

<h4 id="list-sprints-sprints">Sprints</h4>

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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` |
</div>
</details>

### 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.

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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. |
</div>






<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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` |
</div>

### 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.

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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. |
</div>






<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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 |
</div>

### Create Issue

Create an issue in Jira

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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](#create-issue-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 |
</div>




<details>
<summary>The <code>issue-type</code> Object </summary>

<h4 id="create-issue-issue-type">Issue Type</h4>

`issue-type` must fulfill one of the following schemas:

<h5 id="create-issue-epic"><code>Epic</code></h5>

Epic

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Field | Field ID | Type | Note |
| :--- | :--- | :--- | :--- |
| Issue Type | `issue-type` | string |  Must be `"Epic"`   |
</div>

<h5 id="create-issue-task"><code>Task</code></h5>

Task

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Field | Field ID | Type | Note |
| :--- | :--- | :--- | :--- |
| Issue Type | `issue-type` | string |  Must be `"Task"`   |
</div>

<h5 id="create-issue-subtask"><code>Subtask</code></h5>

Subtask

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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`  |
</div>

<h5 id="create-issue-other"><code>Other</code></h5>

Other

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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"`   |
</div>
</details>

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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` |
</div>

### Update Issue

Update an issue in Jira

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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-issue-update) | `update` | object | Update an issue in Jira |
</div>




<details>
<summary>The <code>update</code> Object </summary>

<h4 id="update-issue-update">Update</h4>

`update` must fulfill one of the following schemas:

<h5 id="update-issue-custom-update"><code>Custom Update</code></h5>

Custom update

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| Field | Field ID | Type | Note |
| :--- | :--- | :--- | :--- |
| Update | `update` | string |  Must be `"Custom Update"`   |
| Update Fields | `update-fields` | array |  The fields to update  |
</div>

<h5 id="update-issue-move-issue-to-epic"><code>Move Issue to Epic</code></h5>

Move issue to epic

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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"`   |
</div>
</details>

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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` |
</div>

### Create Sprint

Create a sprint in Jira

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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` |
</div>






<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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 |
</div>

### Update Sprint

Update a sprint in Jira

<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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` |
</div>






<div class="markdown-col-no-wrap" data-col-1 data-col-2>

| 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 |
</div>
## Example Recipes

Recipe for the [Your Project Management Assistant ](https://instill.tech/instill-ai/pipelines/pm-assistant/playground) pipeline.

```yaml
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. hello@world.com
    instill-format: string
output:
  output:
    title: Output
    value: ${openai-0.output.texts}
```

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init

func Init(bc base.Component) *component

Init returns an implementation of IConnector that interacts with Slack.

Types

type AdditionalFields

type AdditionalFields struct {
	Add    any `json:"add,omitempty"`
	Copy   any `json:"copy,omitempty"`
	Set    any `json:"set,omitempty"`
	Edit   any `json:"edit,omitempty"`
	Remove any `json:"remove,omitempty"`
}

type AuthConfig

type AuthConfig struct {
	Email   string `json:"email"`
	Token   string `json:"token"`
	BaseURL string `json:"base-url"`
}

type Board

type Board struct {
	ID        int    `json:"id"`
	Name      string `json:"name"`
	Self      string `json:"self"`
	BoardType string `json:"type"`
}

type Client

type Client struct {
	*httpclient.Client
	APIBaseURL string `json:"api-base-url"`
	Domain     string `json:"domain"`
	CloudID    string `json:"cloud-id"`
}

type CloudID

type CloudID struct {
	ID string `json:"cloudId"`
}

type CreateIssueInput

type CreateIssueInput struct {
	UpdateHistory bool      `json:"update-history"`
	ProjectKey    string    `json:"project-key"`
	IssueType     IssueType `json:"issue-type"`
	Summary       string    `json:"summary"`
	Description   string    `json:"description"`
}

type CreateIssueOutput

type CreateIssueOutput struct {
	Issue
}

type CreateIssueRequset

type CreateIssueRequset struct {
	Fields map[string]interface{}        `json:"fields"`
	Update map[string][]AdditionalFields `json:"update"`
}

type CreateIssueResp

type CreateIssueResp struct {
	ID         string `json:"id"`
	Key        string `json:"key"`
	Self       string `json:"self"`
	Transition struct {
		Status          string `json:"status"`
		ErrorCollection struct {
			ErrorMessages []string               `json:"errorMessages"`
			Errors        map[string]interface{} `json:"errors"`
		} `json:"errorCollection"`
	} `json:"transition"`
}

type CreateSprintInput

type CreateSprintInput struct {
	BoardName string `json:"board-name"`
	Name      string `json:"name"`
	Goal      string `json:"goal"`
	StartDate string `json:"start-date"`
	EndDate   string `json:"end-date"`
}

type CreateSprintOutput

type CreateSprintOutput struct {
	ID            int    `json:"id"`
	Self          string `json:"self"`
	State         string `json:"state"`
	Name          string `json:"name"`
	StartDate     string `json:"start-date"`
	EndDate       string `json:"end-date"`
	CompleteDate  string `json:"complete-date"`
	OriginBoardID int    `json:"origin-board-id"`
	Goal          string `json:"goal"`
}

type CreateSprintRequest

type CreateSprintRequest struct {
	Name          string `json:"name"`
	Goal          string `json:"goal"`
	StartDate     string `json:"startDate"`
	EndDate       string `json:"endDate"`
	OriginBoardID int    `json:"originBoardId"`
}

type CreateSprintResp

type CreateSprintResp struct {
	Sprint
}

type FakeBoard

type FakeBoard struct {
	Board
}

type FakeIssue

type FakeIssue struct {
	ID     string                 `json:"id"`
	Key    string                 `json:"key"`
	Self   string                 `json:"self"`
	Fields map[string]interface{} `json:"fields"`
}

type FakeSprint

type FakeSprint struct {
	ID            int    `json:"id"`
	Self          string `json:"self"`
	State         string `json:"state"`
	Name          string `json:"name"`
	StartDate     string `json:"startDate"`
	EndDate       string `json:"endDate"`
	CompleteDate  string `json:"completeDate"`
	OriginBoardID int    `json:"originBoardId"`
	Goal          string `json:"goal"`
}

type GetBoardResp

type GetBoardResp struct {
	Location struct {
		DisplayName    string `json:"displayName"`
		Name           string `json:"name"`
		ProjectKey     string `json:"projectKey"`
		ProjectID      int    `json:"projectId"`
		ProjectName    string `json:"projectName"`
		ProjectTypeKey string `json:"projectTypeKey"`
		UserAccountID  string `json:"userAccountId"`
		UserID         string `json:"userId"`
	} `json:"location"`
	Board
}

type GetIssueInput

type GetIssueInput struct {
	IssueKey      string `json:"issue-key,omitempty" api:"issueIdOrKey"`
	UpdateHistory bool   `json:"update-history,omitempty" api:"updateHistory"`
}

type GetIssueOutput

type GetIssueOutput struct {
	Issue
}

type GetSprintInput

type GetSprintInput struct {
	SprintID int `json:"sprint-id"`
}

type GetSprintOutput

type GetSprintOutput struct {
	ID            int    `json:"id"`
	Self          string `json:"self"`
	State         string `json:"state"`
	Name          string `json:"name"`
	StartDate     string `json:"start-date"`
	EndDate       string `json:"end-date"`
	CompleteDate  string `json:"complete-date"`
	OriginBoardID int    `json:"origin-board-id"`
	Goal          string `json:"goal"`
}

type Issue

type Issue struct {
	ID          string                 `json:"id"`
	Key         string                 `json:"key"`
	Description string                 `json:"description"`
	Summary     string                 `json:"summary"`
	Fields      map[string]interface{} `json:"fields"`
	Self        string                 `json:"self"`
	IssueType   string                 `json:"issue-type"`
	Status      string                 `json:"status"`
}

type IssueType

type IssueType struct {
	IssueType       string `json:"issue-type"`
	ParentKey       string `json:"parent-key"`
	CustomIssueType string `json:"custom-issue-type"`
}

type ListBoardsInput

type ListBoardsInput struct {
	ProjectKeyOrID string `json:"project-key-or-id,omitempty" api:"projectKeyOrId"`
	BoardType      string `json:"board-type,omitempty" api:"type"`
	Name           string `json:"name,omitempty" api:"name"`
	StartAt        int    `json:"start-at,omitempty" api:"startAt"`
	MaxResults     int    `json:"max-results,omitempty" api:"maxResults"`
}

type ListBoardsOutput

type ListBoardsOutput struct {
	Boards     []Board `json:"boards"`
	StartAt    int     `json:"start-at"`
	MaxResults int     `json:"max-results"`
	Total      int     `json:"total"`
	IsLast     bool    `json:"is-last"`
}

type ListBoardsResp

type ListBoardsResp struct {
	Values     []Board `json:"values"`
	StartAt    int     `json:"startAt"`
	MaxResults int     `json:"maxResults"`
	Total      int     `json:"total"`
	IsLast     bool    `json:"isLast"`
}

type ListIssuesInput

type ListIssuesInput struct {
	BoardName  string `json:"board-name,omitempty" api:"boardName"`
	MaxResults int    `json:"max-results,omitempty" api:"maxResults"`
	StartAt    int    `json:"start-at,omitempty" api:"startAt"`
	Range      Range  `json:"range,omitempty"`
}

type ListIssuesOutput

type ListIssuesOutput struct {
	Issues     []Issue `json:"issues"`
	StartAt    int     `json:"start-at"`
	MaxResults int     `json:"max-results"`
	Total      int     `json:"total"`
}

type ListIssuesResp

type ListIssuesResp struct {
	Issues     []Issue `json:"issues"`
	StartAt    int     `json:"startAt"`
	MaxResults int     `json:"maxResults"`
	Total      int     `json:"total"`
}

type ListSprintInput

type ListSprintInput struct {
	BoardID    int `json:"board-id"`
	StartAt    int `json:"start-at" api:"startAt"`
	MaxResults int `json:"max-results" api:"maxResults"`
}

type ListSprintsOutput

type ListSprintsOutput struct {
	Sprints    []*GetSprintOutput `json:"sprints"`
	StartAt    int                `json:"start-at"`
	MaxResults int                `json:"max-results"`
	Total      int                `json:"total"`
}

type ListSprintsResp

type ListSprintsResp struct {
	Values     []Sprint `json:"values"`
	StartAt    int      `json:"startAt"`
	MaxResults int      `json:"maxResults"`
	Total      int      `json:"total"`
}

type MockIssuesSearchRequest

type MockIssuesSearchRequest struct {
	JQL        string `json:"jql"`
	StartAt    int    `json:"startAt"`
	MaxResults int    `json:"maxResults"`
}

type MockListIssuesResponse

type MockListIssuesResponse struct {
	Issues     []FakeIssue `json:"issues"`
	Total      int         `json:"total"`
	StartAt    int         `json:"startAt"`
	MaxResults int         `json:"maxResults"`
}

type MockListSprintsResponse

type MockListSprintsResponse struct {
	Values     []FakeSprint `json:"values"`
	StartAt    int          `json:"startAt"`
	MaxResults int          `json:"maxResults"`
	Total      int          `json:"total"`
}

type MockUpdateIssueRequset

type MockUpdateIssueRequset struct {
	IssueKey    string                        `json:"issue-key"`
	Update      map[string][]AdditionalFields `json:"update"`
	Fields      map[string]interface{}        `json:"fields"`
	NotifyUsers bool                          `json:"notify-users" api:"notifyUsers"`
	ReturnIssue bool                          `json:"return-issue" api:"returnIssue"`
}

type MockUpdateIssueResp

type MockUpdateIssueResp struct {
	Issue
	NotifyUsers bool `json:"notify-users" api:"notifyUsers"`
	ReturnIssue bool `json:"return-issue" api:"returnIssue"`
}

type MockUpdateSprintRequset

type MockUpdateSprintRequset struct {
	Name          string `json:"name,omitempty"`
	State         string `json:"state,omitempty"`
	OriginBoardID int    `json:"originBoardId,omitempty"`
	Goal          string `json:"goal,omitempty"`
	StartDate     string `json:"startDate,omitempty"`
	EndDate       string `json:"endDate,omitempty"`
	CompleteDate  string `json:"completeDate,omitempty"`
}

type MockUpdateSprintResp

type MockUpdateSprintResp struct {
	FakeSprint
}

type Range

type Range struct {
	Range      string `json:"range,omitempty"`
	EpicKey    string `json:"epic-key,omitempty"`
	SprintName string `json:"sprint-name,omitempty"`
	JQL        string `json:"jql,omitempty"`
}

type Sprint

type Sprint struct {
	ID            int    `json:"id"`
	Self          string `json:"self"`
	State         string `json:"state"`
	Name          string `json:"name"`
	StartDate     string `json:"startDate"`
	EndDate       string `json:"endDate"`
	CompleteDate  string `json:"completeDate"`
	OriginBoardID int    `json:"originBoardId"`
	Goal          string `json:"goal"`
}

type Update

type Update struct {
	UpdateType   string        `json:"update"`
	UpdateFields []UpdateField `json:"update-fields"`
	EpicKey      string        `json:"epic-key"`
}

type UpdateField

type UpdateField struct {
	Action    string `json:"action"`
	FieldName string `json:"field-name"`
	Value     any    `json:"value"`
}

type UpdateIssueInput

type UpdateIssueInput struct {
	IssueKey    string `json:"issue-key"`
	Update      Update `json:"update"`
	NotifyUsers bool   `json:"notify-users" api:"notifyUsers"`
}

type UpdateIssueOutput

type UpdateIssueOutput struct {
	Issue
}

type UpdateIssueRequset

type UpdateIssueRequset struct {
	Body struct {
		Update map[string][]AdditionalFields `json:"update,omitempty"`
		Fields map[string]interface{}        `json:"fields,omitempty"`
	}
	Query struct {
		NotifyUsers bool `json:"notify-users" api:"notifyUsers"`
		ReturnIssue bool `json:"return-issue" api:"returnIssue"`
	}
}

type UpdateIssueResp

type UpdateIssueResp struct {
	Issue
}

type UpdateSprintInput

type UpdateSprintInput struct {
	SprintID       int    `json:"sprint-id"`
	Name           string `json:"name"`
	Goal           string `json:"goal"`
	StartDate      string `json:"start-date"`
	EndDate        string `json:"end-date"`
	CurrentState   string `json:"current-state"`
	EnterNextState bool   `json:"enter-next-state"`
}

type UpdateSprintOutput

type UpdateSprintOutput struct {
	ID            int    `json:"id"`
	Self          string `json:"self"`
	State         string `json:"state"`
	Name          string `json:"name"`
	StartDate     string `json:"start-date"`
	EndDate       string `json:"end-date"`
	CompleteDate  string `json:"complete-date"`
	OriginBoardID int    `json:"origin-board-id"`
	Goal          string `json:"goal"`
}

type UpdateSprintRequest

type UpdateSprintRequest struct {
	Name      string `json:"name,omitempty"`
	Goal      string `json:"goal,omitempty"`
	StartDate string `json:"startDate,omitempty"`
	EndDate   string `json:"endDate,omitempty"`
	State     string `json:"state,omitempty"`
}

type UpdateSprintResp

type UpdateSprintResp struct {
	Sprint
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL