Conversation
Signed-off-by: Valery Piashchynski <piashchynski.valery@gmail.com>
📝 WalkthroughWalkthroughAdds a GitHub Actions workflow that triggers an api-go proto-update workflow (push or manual) using a GitHub App token, updates Buf module/ignore paths from Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as Developer
participant Repo as Source Repo (.github workflow)
participant GH as GitHub Actions
participant App as GitHub App (RR_CICD)
participant Target as roadrunner-server/api-go repo
Dev->>Repo: push to master / manual dispatch
Repo->>GH: workflow starts (trigger-api-go-update)
GH->>App: create installation token (RR_CICD_APP_ID, PRIVATE_KEY)
App-->>GH: returns token
GH->>Target: dispatch workflow `update-proto.yml` (branch, author, message)
Target-->>GH: acknowledge dispatch
GH-->>Repo: workflow completes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/trigger-api-go-update.yml:
- Around line 55-58: The gh workflow run invocation hardcodes the source branch
with `-r master`, so the dispatched workflow file `update-proto.yml` is always
taken from master; change the hardcoded flag `-r master` to use the BRANCH
variable (`-r "${BRANCH}"`) so the workflow file version matches the manually
selected branch and the `branch` input is respected when running
`update-proto.yml`.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (72)
build/applogger/v1/applogger.pb.gois excluded by!**/*.pb.gobuild/centrifugo/api/v1/api.pb.gois excluded by!**/*.pb.gobuild/centrifugo/api/v1/api_grpc.pb.gois excluded by!**/*.pb.gobuild/centrifugo/proxy/v1/proxy.pb.gois excluded by!**/*.pb.gobuild/centrifugo/proxy/v1/proxy_grpc.pb.gois excluded by!**/*.pb.gobuild/common/v1/grpc_status.pb.gois excluded by!**/*.pb.gobuild/google/api/annotations.pb.gois excluded by!**/*.pb.gobuild/google/api/http.pb.gois excluded by!**/*.pb.gobuild/google/protobuf/any.pb.gois excluded by!**/*.pb.gobuild/google/protobuf/descriptor.pb.gois excluded by!**/*.pb.gobuild/google/protobuf/duration.pb.gois excluded by!**/*.pb.gobuild/google/protobuf/empty.pb.gois excluded by!**/*.pb.gobuild/google/protobuf/struct.pb.gois excluded by!**/*.pb.gobuild/google/protobuf/timestamp.pb.gois excluded by!**/*.pb.gobuild/google/protobuf/wrappers.pb.gois excluded by!**/*.pb.gobuild/http/v1/http.pb.gois excluded by!**/*.pb.gobuild/jobs/v1/jobs.pb.gois excluded by!**/*.pb.gobuild/kv/v1/kv.pb.gois excluded by!**/*.pb.gobuild/lock/v1beta1/lock.pb.gois excluded by!**/*.pb.gobuild/service/v1/service.pb.gois excluded by!**/*.pb.gobuild/status/v1/status.pb.gois excluded by!**/*.pb.gobuild/status/v1beta1/status.pb.gois excluded by!**/*.pb.gobuild/temporal/api/activity/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/batch/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/command/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/common/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/deployment/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/batch_operation.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/command_type.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/common.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/deployment.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/event_type.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/failed_cause.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/namespace.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/nexus.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/query.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/reset.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/schedule.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/task_queue.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/update.pb.gois excluded by!**/*.pb.gobuild/temporal/api/enums/v1/workflow.pb.gois excluded by!**/*.pb.gobuild/temporal/api/errordetails/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/export/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/failure/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/filter/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/history/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/namespace/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/nexus/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/operatorservice/v1/request_response.pb.gois excluded by!**/*.pb.gobuild/temporal/api/operatorservice/v1/service.pb.gois excluded by!**/*.pb.gobuild/temporal/api/operatorservice/v1/service_grpc.pb.gois excluded by!**/*.pb.gobuild/temporal/api/protocol/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/query/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/replication/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/rules/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/schedule/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/sdk/v1/enhanced_stack_trace.pb.gois excluded by!**/*.pb.gobuild/temporal/api/sdk/v1/task_complete_metadata.pb.gois excluded by!**/*.pb.gobuild/temporal/api/sdk/v1/user_metadata.pb.gois excluded by!**/*.pb.gobuild/temporal/api/sdk/v1/worker_config.pb.gois excluded by!**/*.pb.gobuild/temporal/api/sdk/v1/workflow_metadata.pb.gois excluded by!**/*.pb.gobuild/temporal/api/taskqueue/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/update/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/version/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/worker/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/workflow/v1/message.pb.gois excluded by!**/*.pb.gobuild/temporal/api/workflowservice/v1/request_response.pb.gois excluded by!**/*.pb.gobuild/temporal/api/workflowservice/v1/service.pb.gois excluded by!**/*.pb.gobuild/temporal/api/workflowservice/v1/service_grpc.pb.gois excluded by!**/*.pb.gobuild/temporal/v1/temporal.pb.gois excluded by!**/*.pb.gobuild/websockets/v1/websockets.pb.gois excluded by!**/*.pb.gogo.sumis excluded by!**/*.sum
📒 Files selected for processing (54)
.github/workflows/trigger-api-go-update.ymlbuf.yamlgo.modplugins/v1/jobs/interface.goplugins/v1/kv/interface.goplugins/v1/lock/lock.goplugins/v1/logger/interface.goplugins/v1/priority_queue/interface.goplugins/v1/status/interface.goplugins/v2/jobs/driver.goplugins/v2/jobs/job.goplugins/v2/jobs/state.goplugins/v2/priority_queue/priority_queue.goplugins/v3/jobs/driver.goplugins/v3/jobs/job.goplugins/v3/jobs/state.goplugins/v3/priority_queue/priority_queue.goplugins/v4/jobs/driver.goplugins/v4/jobs/job.goplugins/v4/jobs/state.goplugins/v4/priority_queue/priority_queue.goproto/centrifugo/api/v1/api.protoproto/lock/v1beta1/lock.protoproto/status/v1beta1/status.protoroadrunner/api/applogger/v1/applogger.protoroadrunner/api/applogger/v2/applogger.protoroadrunner/api/centrifugo/api/v1/api.protoroadrunner/api/centrifugo/proxy/v1/proxy.protoroadrunner/api/common/v1/grpc_status.protoroadrunner/api/http/v1/http.protoroadrunner/api/http/v2/http.protoroadrunner/api/http/v2/request.protoroadrunner/api/http/v2/response.protoroadrunner/api/jobs/v1/jobs.protoroadrunner/api/jobs/v2/jobs.protoroadrunner/api/jobs/v2/request.protoroadrunner/api/jobs/v2/response.protoroadrunner/api/kv/v1/kv.protoroadrunner/api/kv/v2/kv.protoroadrunner/api/kv/v2/request.protoroadrunner/api/kv/v2/response.protoroadrunner/api/lock/v1/lock.protoroadrunner/api/service/v1/service.protoroadrunner/api/service/v2/request.protoroadrunner/api/service/v2/response.protoroadrunner/api/service/v2/service.protoroadrunner/api/status/v1/status.protoroadrunner/api/status/v2/request.protoroadrunner/api/status/v2/response.protoroadrunner/api/temporal/v1/temporal.protoroadrunner/api/websockets/v1/websockets.protoroadrunner/api/websockets/v2/request.protoroadrunner/api/websockets/v2/response.protoroadrunner/api/websockets/v2/websockets.proto
Signed-off-by: Valery Piashchynski <piashchynski.valery@gmail.com>
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
README.md (1)
11-11:⚠️ Potential issue | 🟡 MinorUpdate the godoc badge URL to reference v5.
The godoc badge still references
v4, but this PR migrates the API to v5. The badge URL should be updated to match the new version referenced throughout the rest of the documentation.📝 Proposed fix
- <a href="https://pkg.go.dev/github.com/roadrunner-server/api/v4?tab=doc"><img src="https://godoc.org/github.com/roadrunner-server/api/v4?status.svg"></a> + <a href="https://pkg.go.dev/github.com/roadrunner-server/api/v5?tab=doc"><img src="https://godoc.org/github.com/roadrunner-server/api/v5?status.svg"></a>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` at line 11, Update the godoc badge URL and image to reference v5 instead of v4 by changing the hyperlink and image source in the README: replace "github.com/roadrunner-server/api/v4?tab=doc" and "godoc.org/github.com/roadrunner-server/api/v4?status.svg" with their v5 counterparts (e.g., "github.com/roadrunner-server/api/v5?tab=doc" and the corresponding v5 status SVG) so the badge matches the migrated API version.
🧹 Nitpick comments (1)
README.md (1)
78-80: Add context for the Centrifugal API section.The "Centrifugal API" section lists external proto file links without explaining their relationship to RoadRunner or why they're documented here. Consider either:
- Adding a brief explanation of how Centrifugo integrates with RoadRunner, or
- Removing this section if it's no longer relevant to the restructured repository.
📝 Suggested improvement
## Centrifugal API + +RoadRunner integrates with [Centrifugo](https://github.com/centrifugal/centrifugo) for real-time messaging. The following proto definitions are used for this integration: + - [API](https://github.com/centrifugal/centrifugo/blob/master/internal/apiproto/api.proto) - [Proxy](https://github.com/centrifugal/centrifugo/blob/master/internal/proxyproto/proxy.proto)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` around lines 78 - 80, The "Centrifugal API" README section currently lists two external proto links (the "API" and "Proxy" links) with no context; update the "Centrifugal API" heading to either (A) add a concise description explaining how Centrifugo integrates with RoadRunner (what these proto files are used for, e.g., the API and proxy contracts the adapter implements, and when to consult them) and why they’re documented here, or (B) remove the section entirely if Centrifugo is no longer relevant to this repo restructure; target the "Centrifugal API" heading and the two link entries ("API" and "Proxy") when making the change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@README.md`:
- Around line 25-30: Update the fenced code block that lists the entries
"roadrunner/api/", "third_party/api/", "buf.yaml", and "buf.gen.yaml" to include
a language identifier (e.g., change the opening ``` to ```text) so the block is
annotated for Markdown linting (MD040); locate the block containing those exact
lines and prepend the language token to the opening fence.
---
Outside diff comments:
In `@README.md`:
- Line 11: Update the godoc badge URL and image to reference v5 instead of v4 by
changing the hyperlink and image source in the README: replace
"github.com/roadrunner-server/api/v4?tab=doc" and
"godoc.org/github.com/roadrunner-server/api/v4?status.svg" with their v5
counterparts (e.g., "github.com/roadrunner-server/api/v5?tab=doc" and the
corresponding v5 status SVG) so the badge matches the migrated API version.
---
Nitpick comments:
In `@README.md`:
- Around line 78-80: The "Centrifugal API" README section currently lists two
external proto links (the "API" and "Proxy" links) with no context; update the
"Centrifugal API" heading to either (A) add a concise description explaining how
Centrifugo integrates with RoadRunner (what these proto files are used for,
e.g., the API and proxy contracts the adapter implements, and when to consult
them) and why they’re documented here, or (B) remove the section entirely if
Centrifugo is no longer relevant to this repo restructure; target the
"Centrifugal API" heading and the two link entries ("API" and "Proxy") when
making the change.
| ``` | ||
| roadrunner/api/ — RoadRunner proto definitions (jobs, kv, http, status, etc.) | ||
| third_party/api/ — Temporal API submodule (used as a proto dependency) | ||
| buf.yaml — Buf module configuration | ||
| buf.gen.yaml — Buf code generation configuration | ||
| ``` |
There was a problem hiding this comment.
Specify a language identifier for the fenced code block.
Markdown best practices recommend specifying a language identifier for all fenced code blocks. For directory structure documentation, you can use text or another appropriate identifier.
📝 Proposed fix
-```
+```text
roadrunner/api/ — RoadRunner proto definitions (jobs, kv, http, status, etc.)
third_party/api/ — Temporal API submodule (used as a proto dependency)
buf.yaml — Buf module configuration
buf.gen.yaml — Buf code generation configuration</details>
As per coding guidelines, static analysis tools flagged this as MD040 (fenced-code-language).
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)
[warning] 25-25: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@README.md` around lines 25 - 30, Update the fenced code block that lists the
entries "roadrunner/api/", "third_party/api/", "buf.yaml", and "buf.gen.yaml" to
include a language identifier (e.g., change the opening ``` to ```text) so the
block is annotated for Markdown linting (MD040); locate the block containing
those exact lines and prepend the language token to the opening fence.
Reason for This PR
Description of Changes
License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the MIT license.
PR Checklist
[Author TODO: Meet these criteria.][Reviewer TODO: Verify that these criteria are met. Request changes if not]git commit -s).CHANGELOG.md.Summary by CodeRabbit
Chores
Documentation