> ## Documentation Index
> Fetch the complete documentation index at: https://docs.truecourse.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Jira

> Add any project of a connected Atlassian site as a source. Every standard issue becomes a document that carries its status and its status history.

<Note>
  [Connections](/enterprise/connections) is an [enterprise](/enterprise/overview) feature. An open build has no Connections tab.
</Note>

A Jira **source** is one project, added on [Context](/guard/web-sources) like any other source. It reads through the workspace's Atlassian connection, and one connection can serve several projects.

## Connect the site

Jira reads through the workspace's **Atlassian** connection: the site URL, an account email and an API token, made once in **Settings › Connections** and shared with Confluence. See [Connections](/enterprise/connections#connect-an-atlassian-site) for where each value comes from. The account needs browse access to the projects you will add.

## Add a project as a source

Press **Add context** on any Context page. Once the site is connected, **Jira** is offered among the connected accounts.

<Steps>
  <Step title="Scope">
    Enter the **Project key**, the prefix of the project's issue keys: if issues look like `KAN-42`, the key is `KAN`. It is also the **Key** column under **Projects** and the segment after `/projects/` in the project's URL.

    The default scope is every standard issue of the project, in every status. Epics, stories, tasks and bugs are all read; a shipped story is still part of your specification. Sub-tasks are excluded. You do not need to pre-filter: tickets without specification content (bug reports, dependency bumps, chores) are set aside by the [Document scan](/guard/spec-scan), where you can override any call.

    To narrow the scope anyway, enter a **JQL filter**. It is combined with the project scope for you, so write only the condition:

    ```text theme={null}
    labels = spec
    issuetype in (Epic, Story)
    ```

    Do not include `project = …` or `ORDER BY`.
  </Step>

  <Step title="Check, then add">
    **Check** counts the issues the scope yields and lists the first few, storing nothing. A wrong project key surfaces here as *The value 'X' does not exist for the field 'project'*. Then press **Add and sync**.
  </Step>
</Steps>

The source is titled after the project and syncs like a documentation site: when it is added, on **Sync now**, and once a day. Issues are fetched a hundred at a time, and Jira's rate limits are honored, so a large project is a handful of requests.

## What an issue becomes

One issue is one document, titled `KEY: summary`, with the description as its body and a deep link back to Jira. Ahead of the body the document states what Jira knows about the issue:

| Field                    | What it is                                                                                                    |
| ------------------------ | ------------------------------------------------------------------------------------------------------------- |
| **created**, **updated** | When the issue was created and last changed.                                                                  |
| **resolved**             | When it was resolved. When Jira set a done status without a resolution, the time it last entered that status. |
| **status**               | The workflow status by name, and the category Jira files it under.                                            |
| **status history**       | The last ten status transitions, each with its time, and how many earlier ones there were.                    |

The scan reads these. A workflow status TrueCourse has never seen classifies by its category, so a custom **Ready for QA** still counts as planned and **Won't Do** stays out of scope. When two documents disagree, the scan knows which is newer and whether the older statement was delivered, dropped or superseded, and only a live disagreement becomes a [conflict](/guard/conflicts) for you to settle.

A comment, a label change or an assignee change does not re-curate an issue. Only its text does.

## Not read

Comments, attachments, linked issues and custom fields are not part of the document. Jira Server and Data Center are not supported; the connection is Jira Cloud with an API token.
