Jira Auto Link

unlisted

by Luis Tineo

Turns Jira issue keys like PROJ-123 into links, with an optional hover preview.

Updated 9d agoMIT
View on GitHub

🔗 Jira Auto Link

Turns PROJ-123 into a link to your Jira, wherever it appears in a note.
Hover it to see the summary, status and assignee.

Obsidian TypeScript Tests Mobile License


What it does

Any Jira issue key in reading view becomes a link to <your Jira>/browse/<KEY>. A key is an uppercase project code, a hyphen and digits — ACME-1, PROJ-4821, AB12-9.

Keys inside code spans, code blocks, existing links, <script> and <style> are left alone, so a ticket id quoted in a snippet stays text.

With hover preview on, pointing at a link fetches the issue and shows its summary, status and assignee. The result is cached for the session.

Settings

SettingDefaultWhat it does
Jira base URLemptyThe instance to link to, such as https://example.atlassian.net. Nothing is linked until you set it. Trailing slashes are trimmed.
Enable hover previewonFetch the summary on hover. Turn it off to make the plugin link-only and network-free.

Install

New to building Obsidian plugins? docs/from-nothing.md walks through every step, from a clean machine to your first linked key.

make install VAULT=/path/to/your/vault

Then enable Jira Auto Link in Obsidian's community plugins list. make plan shows what would be copied without doing it.

Develop

make check

Type-checks strict, builds the production bundle, and runs the suite. make dev rebuilds on change.

This tree is the source; the installed plugin folder is an artefact. Edit here and install — never the other way round.

What the hover preview needs

The preview calls \<base\>/rest/api/2/issue/\<KEY\> from the app, with no credentials of its own. It works when the app already carries a Jira session for that host, and returns nothing when it does not — a failed fetch is logged at warning level and the link still works. No token is stored by this plugin and none should be.

Architecture

ModuleResponsibility
src/types.tsSettings and the shape of the Jira response
src/issues.tsFinding keys in text, deciding what to skip, building URLs
src/preview.tsReducing a response to strings and building the card
src/settings.tsThe settings tab
src/main.tsThe plugin: walking the DOM, replacing text, positioning the card

The pure half — key matching, skip rules, URL building, card construction — is tested without a running Obsidian, which is most of the logic that can be wrong.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.