Skip to content

[backport] Emoji reaction tools for issues and pull requests (upstream v1.5.0) #24

Description

@gastrodon

Summary

Upstream v1.5.0 adds emoji reaction support across issues and pull requests via two layers:

Three new granular tools (gated behind FeatureFlagIssuesGranular / FeatureFlagPullRequestsGranular):

  • add_issue_reaction — add a reaction (+1, -1, laugh, confused, heart, hooray, rocket, eyes) to an issue or pull request
  • add_issue_comment_reaction — add a reaction to an issue or pull request comment by comment ID
  • add_pull_request_review_comment_reaction — add a reaction to a PR review comment by numeric comment ID

Optional reaction params on existing default tools:

  • add_issue_comment gains optional comment_id + content fields so an agent can react to a specific comment without enabling the granular toolset; body and comment_id/content are mutually exclusive on the same call
  • add_reply_to_pull_request_comment gains an optional content field for the same reason

The three standalone tools live in issues_granular.go and pullrequests_granular.go. The default-tool extensions live in issues.go and pullrequests.go. Three new toolsnap files are added, and the two existing compound-tool snaps are updated.

Upstream reference

Fork conflict

None. The fork's custom tools (issue_graph, set_project_item_status, add_issue_to_project, project field mutations) operate in entirely different areas. The reaction tools are purely additive.

Context

Reaction support was the last major missing surface for issue/PR interaction. Agents could read reaction counts (already in MinimalIssue.Reactions) but had no way to post reactions. The granular tools use client.Reactions.CreateIssueReaction, CreateIssueCommentReaction, and CreatePullRequestCommentReaction from go-github, all returning HTTP 201 with the reaction ID. The default-tool extensions reduce round-trips for agents that only need to react to a comment they just created.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backportBackport from upstreamreadyReady for implementation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions