Jira tasks
Describes how DousenDesktop lists your Jira issues, how a task links to a Perforce changelist, and how DousenCore moves the issue when you submit.
Dousen doesn’t store tasks, because Jira Cloud is the task system. Dousen uses two Jira connections:
- Your personal connection is your email and API token in Settings → Jira. DousenDesktop uses it only to read issues into the My tasks tab.
- A project connection is the base URL, project key, email, and API token that a project admin sets for the project in the web portal. DousenCore uses it to move the issue forward when a changelist is submitted. Saving or publishing an asset doesn’t change the issue.
Use a Jira task for a publish
- Connect your Jira account in Settings → Jira. See Connect your Jira account.
- In the My tasks tab, select the issue.
- If the task has no changelist, click Open changelist.
- Launch the DCC from DousenDesktop and check that its panel shows the same task and changelist.
- Publish the checked instances, check the result in Unreal, and click Submit changes.
- If the project moves issues on submit, check the issue in Jira. If its status didn’t change, see Transition the issue on submit.
Connect your Jira account
In Settings → Jira, fill in these fields. The setup wizard asks for the same ones. Your Jira account must be able to browse your issues.
| Field | Value |
|---|---|
| Base URL | Your Jira Cloud site, for example https://yourstudio.atlassian.net. |
| The email address you sign in to Jira with. | |
| API Token | A personal token from your Atlassian account (id.atlassian.com → Security
→ API tokens). The tab also has a Create or manage Jira API tokens
link. |
Test Connection sends GET /rest/api/3/myself with your email and token as
HTTP Basic credentials. It shows Connected if Jira answers 200 and
Failed otherwise. The test doesn’t save anything.
DousenDesktop stores the token in its app-data folder, separate from your sign-in session. The file is
obfuscated with a random per-install key, kept in a second file that only your account can read. This
isn’t strong encryption. Jira requests go from your machine straight to Jira Cloud with Basic
authentication. The only Jira data DousenDesktop sends to DousenCore is the issue key (for example
DOU-142), when you work with a task’s changelist.
The My tasks tab
My tasks lists the issues assigned to you that aren’t Done, using this JQL query:
TEXTassignee=currentUser() AND statusCategory != Done
| Call | What it fetches |
|---|---|
GET /rest/api/3/search/jql |
The task list. Query parameters: jql (above),
fields=summary,status,priority,description,assignee,
expand=renderedFields, maxResults=50, and startAt. |
GET /rest/api/3/issue/{key} |
The full detail of one issue, fetched when you select it. It uses the same fields
and expand values. |
My tasks loads your open issues 50 at a time. If more are available, click Load more tasks below the list to add the next 50. Issues you move to a Done status in Jira leave the list.
DousenDesktop refreshes the list every 30 seconds by default. To change this, set Task poll interval in Settings → Connection to 5–3600 seconds. While extra pages are loaded, the automatic refresh pauses so it doesn’t replace them. Click Refresh to reload from the first page and resume it.
Search matches the Jira key or the title, and Status filters by status. Both apply only to the issues that are loaded, so click Load more tasks to search further. Refresh fetches the list again.
Select a task to see its status, Jira key (REF), PROJECT,
TASK ID, linked changelist (CL), shelved changelist
(SHELVED, see Shelving), and description. The
description comes from renderedFields.description, so headings, lists, and images look as
they do in Jira. DousenDesktop downloads description images (/secure/attachment/... URLs)
with your credentials, keeps them in memory for the session, and scales down any that are wider than the
pane.
| Button | Action |
|---|---|
| Open in Jira | Opens the issue in your system browser. |
| Open changelist | Opens a Perforce changelist for this issue. See Perforce. |
| Submit changes | Submits the linked changelist. |
| Restore shelved changes | Unshelves the most recently shelved changelist for this task (preview). See Shelving. |
When Jira is slow or unreachable
If Jira is slow or unreachable, the tab keeps showing the last known tasks, and DousenDesktop polls less often until Jira answers. If Jira rejects your credentials (401 or 403), polling stops until you save valid credentials. For the backoff intervals and exact messages, see My tasks and Troubleshooting.
Link a task to a Perforce changelist
Open changelist opens a Perforce changelist and links it to the issue key (for example
DOU-142) in DousenCore. While the task stays selected, every DCC addon receives the task and
changelist through the task.context bridge event, and your exports carry them. See
DCC addons.
DousenDesktop gets the task’s changelist state from DousenCore. After the list refreshes, Submit changes stays enabled and Open changelist stays disabled while the task has an open changelist. For how changelists are opened and submitted, see Perforce.
Transition the issue on submit
When you submit a task’s changelist, DousenCore can move the Jira issue to another status, using the project’s Jira connection. DousenDesktop doesn’t call Jira for this. A project admin sets up two things:
- A project Jira connection. In the portal, open Projects, select the project, open Project settings, and find Jira Configuration. Enter the Base URL, Project Key, Email, and API Token, then click Update. The API token field is write-only. Leave it blank to keep the current token, or enter a value to set or replace it.
- The
jira.on_submit_transitionpipeline setting, which names the transition to run. In Pipeline settings it is the Jira transition on CL submit field under Integrations. In the YAML it looks like this:
YAMLjira:
on_submit_transition: "In Review"
Then submit a test changelist for a task and check that the issue moves.
After a successful submit, DousenCore lists the issue’s transitions (GET
/rest/api/3/issue/{key}/transitions), picks the one whose name matches the setting
(ignoring case), and runs it with a POST to the same URL. If no transition matches or the
call fails, DousenCore logs the problem. The submit still succeeds, but the issue doesn’t move.
Enter the name of the Jira workflow transition, which can differ from the status it leads to. For example, a transition called "Send to Review" can move the issue to a status called "In Review". To see your transition names, open Project settings → Workflow in Jira.
DousenCore uses the project that was selected when the changelist was opened. If the changelist has no recorded project, it uses the project that DousenDesktop sends with the submit. If the project uses a separate source repository, the issue moves after the task’s last non-empty changelist is submitted. See Perforce.
Inbound Jira webhook
DousenCore accepts webhook events from Jira at POST /webhooks/jira. The
X-Hub-Signature-256 header must be sha256= followed by the HMAC-SHA256 of the
raw body, computed with DOUSEN_WEBHOOK_SECRET.
| Condition | Response |
|---|---|
Valid X-Hub-Signature-256 for DOUSEN_WEBHOOK_SECRET |
200 OK. DousenCore parses and logs the event. |
| Missing or mismatched signature | 401 Unauthorized. |
| Body isn’t a Jira webhook payload | 400 Bad Request. |
DOUSEN_WEBHOOK_SECRET is not set |
503 Service Unavailable. The endpoint rejects requests unless
DOUSEN_ALLOW_INSECURE_WEBHOOK=true is set, which is for development only. |
The endpoint doesn’t change any changelist or task state. To move issues on submit, use
jira.on_submit_transition.