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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions