From devboy
Partially updates issue state, labels, assignees, or priority in GitHub, GitLab, Jira, ClickUp without altering other fields. Use for close, assign, relabel, or transition commands.
npx claudepluginhub meteora-pro/devboy-tools --plugin devboyThis skill uses the workspace's default tool permissions.
Apply a targeted change to an existing issue — transition state, swap labels, hand it to someone else, bump priority — without disturbing fields the user did not mention. The skill always inspects the current record first so the update is informed.
Bulk-migrates GitHub repo labels and Project V2 fields to org-level issue fields. Converts priority labels to Priority field, copies project values, optionally removes old labels.
Updates existing Jira issues using jirac CLI, including summary, description, assignee, priority, labels, components, fix versions, and custom fields. Checks installation and maps requests to flags.
Fetches and summarizes issues from GitHub, GitLab, Jira, or ClickUp trackers. Filters by state, labels, assignee, search; paginates; drills into single issues with comments and relations.
Share bugs, ideas, or general feedback.
Apply a targeted change to an existing issue — transition state, swap labels, hand it to someone else, bump priority — without disturbing fields the user did not mention. The skill always inspects the current record first so the update is informed.
solve-issue).Never update blind. Fetch the issue so you know what you are overwriting:
devboy tools call get_issue '{"key": "DEV-123"}'
Note the current state, labels, assignees, and priority before deciding on the diff. This also surfaces whether the issue is already in the desired state (in which case no call is needed).
GitLab / GitHub use open / closed. ClickUp and Jira use custom workflows — "To Do", "In Progress", "In Review", "Done", "Blocked". When the user asks for something semantic ("mark it done"), check what the tracker actually offers:
devboy tools call get_available_statuses
Pick the status that matches the user's intent. If none fits, ask before guessing.
update_issue is partial — fields you omit are preserved. Send only what actually changes:
# Close an issue
devboy tools call update_issue '{"key": "DEV-123", "state": "closed"}'
# Reassign without touching anything else
devboy tools call update_issue '{"key": "DEV-123", "assignees": ["bob"]}'
# Swap the label set (replaces — not additive)
devboy tools call update_issue '{"key": "DEV-123", "labels": ["bug", "regression"]}'
# Transition a ClickUp / Jira workflow status by string — pass the literal status name via `state`
devboy tools call update_issue '{"key": "CU-abc123", "state": "In Review"}'
Tool fields you can pass: title, description, state, labels, assignees, parentId (ClickUp subtasks), markdown. labels and assignees are replacements, not merges — re-send the full desired list.
When the state change carries meaning the field itself does not capture, follow up with a comment so the history is readable:
devboy tools call add_issue_comment '{
"key": "DEV-123",
"body": "Moving to **Blocked** — waiting on vendor fix for upstream auth (ETA Friday)."
}'
Good triggers for a comment: state → blocked, reassignment, priority escalation, a close-as-wontfix that needs context.
Re-read the issue and confirm the intended fields changed while the others did not:
devboy tools call get_issue '{"key": "DEV-123", "includeComments": false, "includeRelations": false}'
get_available_statuses.