Skip to content
PWR

Project management

Jira integration

Connect Jira Cloud or GitHub Issues to import issues as draft tasks and write verified results back. Not yet verified live.

PWR can pull work from a project-management tool, run it through the normal task, review and approval workflow, and write the recorded results back to the issue. Two connectors exist: Jira Cloud and GitHub Issues.

Status: Both connectors are implemented and tested against simulated Jira and GitHub services. Neither has been verified against a real Jira Cloud site or live GitHub. Linear and Notion are declared as interfaces only and cannot be connected.

Connector overview

CapabilityJira CloudGitHub Issues
AuthenticationAccount email and API tokenThe project's GitHub App installation, with the Issues permission
Boards and sprintsScrum boards and their sprints (kanban boards are skipped)Milestones act as sprints
Import scopesA sprint, a board, a JQL query, or all open issues, optionally by labelAll open issues, a milestone, or labels
CommentsYesYes
Status transitionsThrough your status mapOpen and closed only
LabelsYesYes
Pull request linkRemote link on the issueComment
WebhooksJira webhook with a shared secretThe GitHub App's issues event

Jira OAuth 2.0 (3LO) sign-in exists as a scaffold and has only been exercised against a simulated token endpoint. Use an API token.

Connect Jira

Admins manage connections under Integrations → Jira / GitHub Issues.

  1. Create a Jira connection with your site URL (https://<site>.atlassian.net), an Atlassian account email and an API token. A service account is recommended.
  2. PWR verifies the token against Jira before saving. A wrong token is refused with pm_credentials_expired and nothing is stored.
  3. The token is stored encrypted and is write-only. It is never shown again.

The account needs permission to browse projects, add comments, transition issues, edit issues (labels) and link issues on the target projects.

Jira webhook (optional)

Creating the connection returns a webhook URL and a shared secret once. In Jira, register a webhook for issue created, updated and deleted events, and send the secret in the webhook secret header shown with the connection. Webhooks only refresh issues that are already linked. Import is always an explicit action and is never triggered by a webhook.

A project link maps an external project (a Jira project key or a repository) to a PWR project, with a default import scope and a sync mode: import_only or two_way.

Developers run imports. The rules:

  • Each issue becomes exactly one task, and re-importing is idempotent.
  • Imported issues always become draft tasks, never ready. Importing never starts work.
  • The task description starts with a source line linking back to the issue. Priority is mapped to PWR's four levels.
  • Acceptance criteria come from the custom field you configure, or from an ## Acceptance criteria section in the description.
  • "Blocked by" and "depends on" links become task dependencies when both issues are imported.

Conflicts

If an issue changes externally after you edited its task in PWR, or while the task is queued, running, completed or cancelled, PWR records a conflict instead of overwriting. You resolve it by keeping the local or the external version. An issue with an open conflict is not eligible for autonomous execution.

Approving issues for autonomous work

Eligibility is an explicit signal. An issue is eligible when it carries the approval label (shown on the connection, configurable per connection) or when a developer approves the linked issue in PWR. Approval does not change the task's status.

Write-back

PWR writes back recorded facts only: the task status, the pull request URL, the validation result and the latest valid review verdict. Nothing a model said is forwarded to your tracker.

  • Comments are posted on status changes: running, review, approved, completed, failed, blocked, rejected and cancelled by default. They can be disabled.
  • Transitions and labels are written only for two_way links that define a status map or label map. For Jira, PWR picks the live transition whose target status matches your map. An unreachable target is recorded as a failed write.
  • GitHub issues are never closed unless you enable close_on_complete.
  • Each write is recorded before it is sent and is made at most once per status. After an interruption PWR checks whether its comment already exists rather than posting again.
  • Every attempt appears in the connection's write audit.

If Jira answers 403, the write is recorded as permission_denied and not retried blindly. If it answers 401, the connection becomes credentials_expired until you rotate the token.

Sprint analysis

From a linked sprint, a Producer agent can analyse the tickets and propose which can run autonomously. See Sprint execution.

Limitations

  • PWR cannot create issues in Jira. Connectors can comment, transition, label and link only.
  • Jira's rich-text format is converted to plain text; unusual content falls back to concatenated text.
  • The Jira search endpoint used is being replaced by Atlassian. Pagination on the new endpoint must be checked against a real site.
  • Linear and Notion cannot be connected yet.