User story
As a Product Manager / designer working in Figma, I have a GitJam card that shows a GitLab issue on my design file. I want to attach one of my frames (or a selected node) to that issue so the design is linked to the work item without leaving Figma.
Scope
- Runs in Figma Design (not FigJam) – manifest
editorType has to include "figma".
- Trigger: a new action on the card ("Attach selection" button, or a dedicated button inside the card body).
- User flow:
- User selects one or more frames in the Figma file.
- User clicks 'Attach selection' on the card.
- Widget exports each selected frame as PNG via
figma.exportAsync().
- Widget POSTs the image(s) to GitLab as an attachment, then appends a description edit (or a comment) linking the uploaded image.
- Target endpoint:
POST /projects/:id/uploads to upload, then PUT /projects/:id/issues/:iid or POST /projects/:id/issues/:iid/notes to reference the upload.
Prior art
'Add design' style widgets exist for Jira – they exhibit the same pattern.
Open questions
- Should the widget attach to the issue description (
PUT) or post as a new comment (POST /notes)? → recommend a new comment to avoid mangling curated descriptions.
- How do we handle multiple selections? → one upload per frame, one comment that lists all links.
- Does the same flow work for an epic card? Yes, epics accept notes via
POST /groups/:id/epics/:iid/notes.
Acceptance criteria
User story
As a Product Manager / designer working in Figma, I have a GitJam card that shows a GitLab issue on my design file. I want to attach one of my frames (or a selected node) to that issue so the design is linked to the work item without leaving Figma.
Scope
editorTypehas to include"figma".figma.exportAsync().POST /projects/:id/uploadsto upload, thenPUT /projects/:id/issues/:iidorPOST /projects/:id/issues/:iid/notesto reference the upload.Prior art
'Add design' style widgets exist for Jira – they exhibit the same pattern.
Open questions
PUT) or post as a new comment (POST /notes)? → recommend a new comment to avoid mangling curated descriptions.POST /groups/:id/epics/:iid/notes.Acceptance criteria
editorTypeupdate).apiscope, not onlyread_api).