@euraika-labs/paperclip-plugin-gitlab
Paperclip plugin for (self-hosted) GitLab:
- GitLab Repos sidebar page: search your GitLab repos and create a project per repo, or add a repo to an existing project.
- GitLab tab on every project: turn on two-way issue sync, import open GitLab issues/work items, and add repos.
- Import GitLab issues button on project pages: the same sync/import controls in a dialog.
- Update badge and banner when a newer version is on npm; one click upgrades (and approves new permissions).
Two-way sync
Per project, once turned on:
| What | Paperclip → GitLab | GitLab → Paperclip |
|---|---|---|
| New issues | new top-level issues are created in GitLab | new open issues are imported (Backlog or Todo) |
| Title, description | pushed | pulled (last edit wins on conflicts) |
| Status | done/cancelled closes; reopen reopens | closed → done; reopened → todo |
| Work state | in_progress / in_review / blocked set the matching label | those labels set the status |
| Comments | copied as notes, marked with the author | notes copied as comments, marked with the author |
Paperclip changes are pushed immediately; GitLab changes are pulled every 5 minutes (or on Sync now). Sub-issues and automation-created issues (routines, watchdogs) stay in Paperclip. Work-state labels default to agent:in-progress, review and blocked and can be changed in settings; other labels are never touched.
Settings
| Setting | Default | Purpose |
|---|---|---|
gitlabUrl | https://git.euraika.net | Base URL of your GitLab instance |
token | — | Optional personal access token (api scope for sync), stored as a Paperclip secret |
glabPath | glab | glab CLI used when no token is set; reuses the machine's glab auth login |
inProgressLabel / inReviewLabel / blockedLabel | agent:in-progress / review / blocked | Labels mirrored from Paperclip work states |
Develop
npm install
npm run build