Issues Sync
unlistedby CheinTian
Sync GitHub and GitLab issues with comments to your Obsidian vault
Updated 2mo ago
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
- Download
main.js,manifest.json, andstyles.cssinto your vault's.obsidian/plugins/obsidian-issues-sync/folder - Enable the plugin in Obsidian Settings → Community Plugins
- 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
| Command | Description |
|---|---|
| Sync all configured issues | Sync both GitHub and GitLab |
| Sync GitHub issues only | Only sync GitHub repos |
| Sync GitLab issues only | Only sync GitLab scopes |
| Test GitLab connection | Verify GitLab API connection |
| Test GitHub connection | Verify GitHub API connection |
| Reset last sync timestamp | Force a full resync next time |
Configuration
General
| Setting | Description |
|---|---|
| Default output folder | Default vault folder for issues (can be overridden per target) |
| Incremental sync | Only sync issues updated since last run |
| Download attachments | Download images and attachments from issues |
GitHub
| Setting | Description |
|---|---|
| Personal access token | GitHub PAT (optional for public repos) |
| Repositories | List of owner/repo with optional output directory |
GitLab
| Setting | Description |
|---|---|
| Instance URL | Base URL of your GitLab instance |
| Personal access token | GitLab PAT with read_api scope |
| Scopes | project <ID>, group <ID>, or instance with optional output directory |
Token Scopes
- GitHub:
reposcope for private repos; no token needed for public repos - GitLab:
read_apiscope
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.