Issues Sync

unlisted

by CheinTian

Sync GitHub and GitLab issues with comments to your Obsidian vault

Updated 2mo ago
View on GitHub

Obsidian Issues Sync

Sync GitHub and GitLab issues (with comments and attachments) into your Obsidian vault as structured Markdown files.

Features

  • GitHub: Sync issues + comments from one or more repositories
  • GitLab: Sync issues + comments from:
    • Specific projects (by project ID)
    • Groups (all projects in a group, including subgroups)
    • Entire instance (all accessible projects)
  • Per-target output directory: Each sync target can specify its own output folder
  • Title-based filenames: Issues are saved as {issue-title}.md
  • Attachment support: Download and save images and attachments from issues
  • Incremental sync: Only fetches updates since the last run
  • Filter by label: Per repo/scope label filtering
  • Ribbon icon + Command palette commands

Installation

  1. Download main.js, manifest.json, and styles.css into your vault's .obsidian/plugins/obsidian-issues-sync/ folder
  2. Enable the plugin in Obsidian Settings → Community Plugins
  3. Configure your tokens and sync targets in the plugin settings

Output Structure

my-github-issues/
└── octocat-hello-world/
    ├── fix-login-bug.md
    ├── add-dark-mode.md
    └── assets/
        └── screenshot.png

my-gitlab-issues/
└── my-group/
    └── my-project/
        ├── update-readme.md
        ├── refactor-api.md
        └── assets/
            └── diagram.png

Each issue file contains:

  • YAML frontmatter (title, number, state, author, labels, dates, URL)
  • Issue description
  • All comments with author and timestamp

Commands

CommandDescription
Sync all configured issuesSync both GitHub and GitLab
Sync GitHub issues onlyOnly sync GitHub repos
Sync GitLab issues onlyOnly sync GitLab scopes
Test GitLab connectionVerify GitLab API connection
Test GitHub connectionVerify GitHub API connection
Reset last sync timestampForce a full resync next time

Configuration

General

SettingDescription
Default output folderDefault vault folder for issues (can be overridden per target)
Incremental syncOnly sync issues updated since last run
Download attachmentsDownload images and attachments from issues

GitHub

SettingDescription
Personal access tokenGitHub PAT (optional for public repos)
RepositoriesList of owner/repo with optional output directory

GitLab

SettingDescription
Instance URLBase URL of your GitLab instance
Personal access tokenGitLab PAT with read_api scope
Scopesproject <ID>, group <ID>, or instance with optional output directory

Token Scopes

  • GitHub: repo scope for private repos; no token needed for public repos
  • GitLab: read_api scope

Debugging

Open Obsidian Developer Tools (Cmd+Option+I on Mac) and check the Console tab for detailed logs prefixed with [Issues Sync].

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.