Skip to content

feat(nodes): add tool_coderabbit — CodeRabbit review reports as an agent tool #2276

Description

@mithileshgau

Problem Statement

RocketRide pipelines and agents currently have no way to pull code-review intelligence: a pipeline that assembles an engineering status report, or an agent asked "what did code review flag this sprint," has no node to call. CodeRabbit exposes exactly this over a small REST API.

Proposed Solution

Add a tool_coderabbit agent-tool node (classType tool, register filter), mirroring the existing tool_github node (nodes/src/nodes/tool_github/ — same file layout: IGlobal.py, IInstance.py, <name>_client.py, services.json, README.md, svg, requirements.txt).

API basis (documented at https://docs.coderabbit.ai/api-reference/report-generate):

  • Base URL: https://api.coderabbit.ai/api/v1
  • Auth: x-coderabbitai-api-key header (config field, secret)
  • Core operation: POST /report.generate — developer-activity / review reports over a date range, with prompt template, grouping, and parameter filters

Suggested tool operations (exposed to agents):

  1. generate_report — from/to dates, optional template + filters; returns the report content
  2. Optional: a thin passthrough for custom prompt templates so pipeline authors can shape the report

Config schema (in services.json):

  • api_key (secret, required)
  • default_template (string, optional)
  • standard tool node properties

Lanes: standard tool node shape — used as an invoke connection by agents; direct-lane use optional, matching whatever tool_github does.

Implementation notes:

  • Node docs are README.md (not doc.md) and must carry the generated-params marker pair; params regenerate from services.json via nodes:docs-generate.
  • Test ladder: uvx ruff check, pytest (Python 3.11), ./builder nodes:test. Note nodes:test can fail locally on external-service nodes for environment reasons — mock the HTTP client in unit tests; do not call the live API from tests.
  • Error handling: surface CodeRabbit HTTP errors (bad key, rate limit) as warnings with status code and truncated message, following the pattern used by existing tool nodes.

Alternatives Considered

tool_http_request can hit the API today, but every pipeline must hand-roll auth headers, request shaping, and response parsing. A dedicated node makes the capability discoverable in the canvas and reusable.

Affected Modules

  • server (C++ engine)
  • client-typescript
  • client-python
  • client-mcp
  • nodes (pipeline)
  • ai
  • vscode

Good community/hackathon candidate (see epic #1522). Template node: tool_github.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or enhancementhelp wantedExtra attention is neededmodule:nodesPython pipeline nodespriority:highMajor feature broken or silently wrong, workaround costly, shipped regression, dated commitment

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions