Files
ComfyUI_frontend/.claude/skills/ticket-intake/providers/github.md
Dante 07d5bd50f6 feat: extract SeedControlButton component (#9744)
<img width="1048" height="482" alt="스크린샷 2026-03-12 오전 9 11 56"
src="https://github.com/user-attachments/assets/68009980-097c-4736-b7c4-eb8f9a6f05be"
/>

## Summary
- Extract inline value control button from `WidgetWithControl` into
reusable `SeedControlButton` component
- Support `badge` (pill) and `button` (square) variants per Figma design
system spec
- Use native `<button>` element for proper a11y (works with Reka UI's
`PopoverTrigger as-child`)

## Test plan
- [x] Verify seed control button renders correctly on KSampler node's
seed widget
- [x] Verify popover opens on click and mode selection works
- [x] Verify all 4 modes display correct icon/text (shuffle, pencil-off,
+1, -1)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9744-feat-extract-SeedControlButton-component-3206d73d365081a3823cc19e48d205c1)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: github-actions <github-actions@github.com>
2026-03-13 02:49:18 -07:00

4.4 KiB

GitHub Provider - Ticket Intake

Provider-specific logic for ingesting tickets from GitHub Issues.

URL Pattern

https://github.com/{owner}/{repo}/issues/{number}
https://www.github.com/{owner}/{repo}/issues/{number}

Extract: owner, repo, issue_number from URL.

Prerequisites

  • gh CLI authenticated (gh auth status)
  • Access to the repository

Fetch Issue Content

Use gh CLI to fetch issue details:

# Get issue details in JSON
gh issue view {number} --repo {owner}/{repo} --json title,body,state,labels,assignees,milestone,author,createdAt,comments,linkedPRs

# Get comments separately if needed
gh issue view {number} --repo {owner}/{repo} --comments

Extract Ticket Data

Map GitHub issue fields to normalized ticket data (stored via API):

GitHub Field ticket.json Field Notes
title title Direct mapping
body description Issue body/description
state status Map: open → "Not Started"
labels labels Array of label names
assignees assignee First assignee login
author author Issue author login
milestone milestone Milestone title if present
comments comments Array of comment objects
linkedPRs linkedPRs PRs linked to this issue

Priority Mapping

Infer priority from labels:

  • priority:critical, P0 → "Critical"
  • priority:high, P1 → "High"
  • priority:medium, P2 → "Medium"
  • priority:low, P3 → "Low"
  • No priority label → "Medium" (default)

Area Mapping

Infer area from labels:

  • area:ui, frontend, component:* → "UI"
  • area:api, backend → "API"
  • area:docs, documentation → "Docs"
  • bug, fix → "Bug"
  • enhancement, feature → "Feature"

Update Source

For GitHub issues, update is optional but recommended.

Add a comment to indicate work has started:

gh issue comment {number} --repo {owner}/{repo} --body "🤖 Pipeline started processing this issue."

Optionally assign to self:

gh issue edit {number} --repo {owner}/{repo} --add-assignee @me

Log any updates via the Pipeline API:

await client.updateTicket(ticketId, {
  metadata: {
    ...ticket.metadata,
    githubWrites: [
      ...(ticket.metadata?.githubWrites || []),
      {
        action: 'comment',
        issueNumber: 123,
        at: new Date().toISOString(),
        skill: 'ticket-intake',
        success: true
      }
    ]
  }
})

GitHub-Specific Ticket Fields

Store via API using client.createTicket():

{
  "source": "github",
  "githubOwner": "Comfy-Org",
  "githubRepo": "ComfyUI_frontend",
  "githubIssueNumber": 123,
  "githubIssueUrl": "https://github.com/Comfy-Org/ComfyUI_frontend/issues/123",
  "labels": ["bug", "area:ui", "priority:high"],
  "linkedPRs": [456, 789],
  "dosuComment": "..." // Extracted Dosu bot analysis if present
}

Dosu Bot Detection

Many repositories use Dosu bot for automated issue analysis. Check comments for Dosu:

gh issue view {number} --repo {owner}/{repo} --comments | grep -A 100 "dosu"

Look for comments from:

  • dosu[bot]
  • dosu-bot

Extract Dosu analysis which typically includes:

  • Root cause analysis
  • Suggested files to modify
  • Related issues/PRs
  • Potential solutions

Store in ticket data via API:

{
  "dosuComment": {
    "found": true,
    "analysis": "...",
    "suggestedFiles": ["src/file1.ts", "src/file2.ts"],
    "relatedIssues": [100, 101]
  }
}

Extract Linked Issues/PRs

Parse issue body and comments for references:

  • #123 → Issue or PR reference
  • fixes #123, closes #123 → Linked issue
  • https://github.com/.../issues/123 → Full URL reference

Store in ticket data via API for research phase:

{
  "referencedIssues": [100, 101, 102],
  "referencedPRs": [200, 201]
}

Error Handling

Authentication Error

⚠️ GitHub CLI not authenticated.
Run: gh auth login

Issue Not Found

❌ GitHub issue not found or inaccessible.
- Check the URL is correct
- Ensure you have access to this repository
- Run: gh auth status

Rate Limiting

⚠️ GitHub API rate limited.
Wait a few minutes and try again.
Check status: gh api rate_limit