No description
Find a file
Forketyfork 1deaf2f716
chore(deps): pin obsidian to ^1.12.3 instead of "latest"
The "latest" dist-tag confuses dependabot's advisory matcher, which flags
a false-positive CVE-2021-38148 alert (the obsidian < 0.12.12 vuln) for
every install. Pinning to a concrete semver range resolves the spec
unambiguously and lets dependabot continue to roll the typings forward
under the 7-day cooldown.
2026-05-24 19:40:57 +02:00
.devcontainer feat(junie): added .devcontainer.json 2025-09-12 09:12:25 +00:00
.github chore(deps): bump pnpm/action-setup from 4 to 6 in the all-actions group 2026-05-24 15:38:27 +00:00
images Added search image 2025-09-09 15:11:46 +02:00
src build(css): replace csso with esbuild for minification 2026-05-18 09:58:28 +02:00
.editorconfig Initial version 2025-04-14 10:53:12 +02:00
.envrc nix and just development environment 2025-09-01 08:21:36 +02:00
.gitignore chore: migrate from yarn to pnpm and tighten dependabot policy 2026-05-24 10:19:25 +02:00
.npmrc chore: bump pnpm to 11.1.2 2026-05-24 17:30:42 +02:00
.prettierignore 0.2.0: Configure note template 2025-05-02 07:53:25 +02:00
.prettierrc 0.2.0: Configure note template 2025-05-02 07:53:25 +02:00
.stylelintrc.json build(css): replace csso with esbuild for minification 2026-05-18 09:58:28 +02:00
AGENTS.md Added a symbolic link to AGENTS.md 2025-05-21 07:20:12 +02:00
CLAUDE.md chore: migrate from yarn to pnpm and tighten dependabot policy 2026-05-24 10:19:25 +02:00
esbuild.config.mjs build(css): replace csso with esbuild for minification 2026-05-18 09:58:28 +02:00
eslint.config.mjs chore: migrate from yarn to pnpm and tighten dependabot policy 2026-05-24 10:19:25 +02:00
flake.lock chore: bump pnpm to 11.1.2 2026-05-24 17:30:42 +02:00
flake.nix chore: bump pnpm to 11.1.2 2026-05-24 17:30:42 +02:00
jest.config.js Fix build with TypeScript 6 2026-04-10 14:19:50 +02:00
justfile chore: migrate from yarn to pnpm and tighten dependabot policy 2026-05-24 10:19:25 +02:00
LICENSE License 2025-04-14 12:07:27 +02:00
manifest.json v0.12.0 2026-05-18 10:20:14 +02:00
package.json chore(deps): pin obsidian to ^1.12.3 instead of "latest" 2026-05-24 19:40:57 +02:00
pnpm-lock.yaml chore(deps): pin obsidian to ^1.12.3 instead of "latest" 2026-05-24 19:40:57 +02:00
pnpm-workspace.yaml chore: bump pnpm to 11.1.2 2026-05-24 17:30:42 +02:00
README.md chore: migrate from yarn to pnpm and tighten dependabot policy 2026-05-24 10:19:25 +02:00
release.mjs chore: migrate from yarn to pnpm and tighten dependabot policy 2026-05-24 10:19:25 +02:00
tsconfig.json Fix build with TypeScript 6 2026-04-10 14:19:50 +02:00
tsconfig.test.json Fix build with TypeScript 6 2026-04-10 14:19:50 +02:00
version-bump.mjs 0.2.0: Configure note template 2025-05-02 07:53:25 +02:00
versions.json v0.12.0 2026-05-18 10:20:14 +02:00

YouTrack Fetcher

Build status Latest Release MIT License TypeScript

This Obsidian plugin allows you to quickly fetch YouTrack issues and create notes from them in your Obsidian vault.

Features

  • Fetch YouTrack issues by ID or URL and create structured notes
  • Easy access via keyboard shortcut
  • API token authentication support
  • Configurable folder for storing issue notes
  • Configurable note template
  • Use ${field} placeholders in templates to insert values from fetched fields
  • Fields to fetch are parsed from your template automatically
  • You can specify arbitrarily nested fields, e.g., ${project.team.name}
  • Search for issues using YouTrack query language and import them from a paginated list

Installation

From Obsidian Community Plugins

  1. Open Obsidian
  2. Go to Settings > Community plugins
  3. Disable Safe mode if necessary
  4. Click Browse and search for "YouTrack Fetcher"
  5. Install the plugin
  6. Enable the plugin after installation

Manual Installation

  1. Download the latest release from the GitHub repository
  2. Extract the ZIP file into your Obsidian vault's .obsidian/plugins/ folder
  3. Enable the plugin in Obsidian settings

Usage

  1. Set up your YouTrack instance URL in plugin settings
  2. Configure API token if required for your YouTrack instance plugin settings
  3. Use the keyboard shortcut or click the clipboard icon in the ribbon fetch issue window
  4. Enter the issue ID or paste the full issue URL
  5. Click "Fetch Issue" to create a note based on the issue data fetched issue

Alternatively, you can use the "Search YouTrack issues" command to open a search modal. Here you can enter a YouTrack query to search for issues. The results are paginated, and you can import any issue from the list.

search

Note Format

The plugin creates notes with the following format. As an alternative, specify your own template in the plugin settings. You can use arbitrarily nested fields, e.g., ${project.team.name}.

# ${id}: ${title}

URL: ${url}

## Description

${description}

Any field referenced in the template can be used as a placeholder with ${field}. You can also use arbitrarily nested fields, e.g., ${project.team.name}.

The issue summary can also be used as a ${title} placeholder.

See the YouTrack API Issue entity documentation for a list of available fields.

Requirements

  • Obsidian v1.4.10 or higher
  • Access to a YouTrack instance (cloud or self-hosted)

Troubleshooting

If you have trouble fetching issues, check the following. If you're on macOS or Linux, you can use the provided curl commands in your terminal, replacing the example host, port, and token with your values.

  1. URL + network reachability: verify that YouTrack is accessible from your machine.

    Use the exact base URL you open in a browser, including port and any additional path like /youtrack.

    curl -s -o /dev/null -w "%{http_code}\n" https://youtrack.company.local:8080/youtrack
    
    • 200/302/401/403 = reachable
    • 000 = can't connect (VPN/DNS/firewall/port issue)
  2. API token (if your instance requires authentication).

    To get a token:

    • go to your profile: /users/me
    • click on "Update personal information and manage logins"
    • select "Account security"
    • scroll down to "Tokens" and click "New token"
    • set name and add "YouTrack" to token scope
    • click "Create" and copy the token

    Then enable "Use API token authentication" in the plugin settings and paste the generated token into "API token".

    How to check that the token works:

    curl -s -o /dev/null -w "%{http_code}\n" -H "Authorization: Bearer <your token here>" <base URL>/api/users/me
    
    • 200 = token works
    • 401/403 = token invalid or permissions issue
  3. Permissions / project access

    Ensure you have access to the project. Replace in the request below with the one you expect to have access to:

    curl -s -o /dev/null -w "%{http_code}\n" \
      -H "Accept: application/json" \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer <your token here>" \
      -G --data-urlencode "query=project: <project code>" \
      --data-urlencode "fields=idReadable,summary" \
      --data-urlencode "\$top=1" \
      <base URL>/api/issues
    
    • 200 = access ok
    • 403 = no permission

If you still face problems, create an issue. Also: in Obsidian, open View -> Toggle Developer Tools, check the Console for errors, and attach those logs to the ticket if possible.

Development

This project includes a Nix flake and direnv configuration for reproducible development environments, along with Just commands for common tasks.

Prerequisites

  • Nix with flakes enabled
  • direnv (optional but recommended)

Setup

  1. Clone the repository and enter the directory
  2. If using direnv, run direnv allow to automatically load the development environment
  3. If not using direnv, run nix develop to enter the development shell

Available Commands

# List all available commands
just

# Clean build artifacts
just clean

# Install dependencies
just install

# Full production build (includes tests, type checking, and formatting)
just build

# Development build with watch mode
just watch

# Run tests
just test

# Run linter
just lint

# Run the CSS linter
just lint-css

Using pnpm Directly

Run the development build with change watch:

pnpm dev:watch

Run the TypeScript type check:

pnpm typecheck

Run the linter:

pnpm lint

Run the CSS linter:

pnpm lint:css

Run the tests:

pnpm test

Run the tests in watch mode:

pnpm test:watch

Generate a coverage report:

pnpm coverage

Run the production build (includes tests, type checking, and formatting):

pnpm build

Bump the version in package.json and manifest.json, push the main branch, and publish a new tag:

pnpm release -- <strategy|version>

My other plugins

  • Food Tracker: Track calories, macros, and nutrition totals with database and inline entries.
  • Grazie Plugin: Grammar and spell checking powered by JetBrains AI Platform (in development).
  • Speech Bubbles: Render transcript notes as chat-style speech bubbles.

License

This plugin is licensed under the MIT License.