Jira integration
Connect GumStory to Jira Cloud and sync your projects.
Connecting Jira
GumStory connects to Jira Cloud via OAuth. Go to Settings and click Connect Jira. You will be redirected to Atlassian to authorize. After authorization, GumStory can read and create issues in your Jira projects.
Linking projects
When you create a project in GumStory, you can set a Jira project key. This links the GumStory project to a Jira project. The dashboard then fetches issues from that Jira project. Stats, charts, and role dashboards (QA, Scrum Master, etc.) use Jira data.
Pushing issues
When you create a bug, story, or task via Quick create or Work Assistant, GumStory pushes it to Jira if the project is linked. Test cases are stored locally unless your Jira has a test case type (e.g. Xray).
Local issue mirror & SQL
GumStory stores a row per Jira issue in Postgres (Supabase-compatible). The first time you open a project, GumStory paginates through Jira once to fill the mirror. After that, only a user refresh (or an explicit sync event) runs Jira again, and then only issues changed since the last stored update are fetched and upserted—never a full wipe.
When your JQL only uses fields GumStory mirrors (project, type/issuetype, status, priority, assignee, summary ~, key) and AND combinations, an internal JQL→SQL engine serves charts and lists via $queryRaw—no Jira round-trip. JQL with Jira functions (openSprints(), currentUser(), fixVersion, etc.) still uses the Jira API; returned issues are merged into the mirror. See src/lib/jira/jqlSqlEngine.ts for the supported subset and approximateJqlFromCompiled for a rough JQL string from compiled filters. For server-driven sync (cron/webhooks), POST /api/projects/[projectId]/mirror-sync runs the same incremental pull as the dashboard refresh.