feat(stovepipe): define GetProjectStatusByURI API - #637
Conversation
Summary: Intent: - Expose a stable, queue-scoped contract for reading retained request history. - Establish the shared validation result shape used by recorded validation facts. Changes: - Add request-ID and URI history requests with cursor pagination. - Add the history projection messages and generated gRPC and YARPC bindings. - Align the request-history RFC example on the public entry identifier. This PR builds on #637 in the Stovepipe API proposal stack. --- <sub>Generated by the 🪄 [pr-create](https://sg.uberinternal.com/code.uber.internal/uber-code/devexp-agent-marketplace/-/blob/claude-code/plugins/dev/uber-dev/skills/pr-create/SKILL.md) skill in devexp-agent-marketplace</sub>
a3459c7 to
09423b6
Compare
93837f3 to
e595f9e
Compare
e595f9e to
b3d1fab
Compare
93199d8 to
b3d1fab
Compare
| optional double repository_breakage_degree = 6; | ||
| // Whether every planned project has one durable result and completion is recorded. False | ||
| // until the project list is available. | ||
| bool project_results_complete = 7; |
There was a problem hiding this comment.
what is this for? I am unable to relate what does it support?
There was a problem hiding this comment.
I am thinking that we want to avoid the assumption that projects will always be totally fixed - and have the API explicitly indicate when it reaches that point. For example we may want to gradually populate individual project results as they become available from the build and let those projects become green while the build or analysis is still finishing. Or pre-populate the list of pending projects much earlier in the request, so callers could know what projects to expect as an outcome of this request. I'm thinking that adding this indicator now gives us more flexibility to consider those cases in the future.
| // Breakage degree measures how broken the whole repository is on [0.0, 1.0]. Unset until its | ||
| // fact is recorded; zero is fully green and one is fully broken. Values are directly | ||
| // comparable: lower values are greener, and any value above zero is not green. | ||
| optional double repository_breakage_degree = 6; |
There was a problem hiding this comment.
why is this optional? I assume if project is not provided we are retruning overall status plus paged projects
There was a problem hiding this comment.
The API may be called before that result is recorded, so we need to distinguish between “no value” from “green" - so it is blank if the request is still in a state where there is no result yet.
b3d1fab to
46f9316
Compare
Summary: This PR builds on #637, which defines the GetProjectStatusByURI contract and rollout. Intent: - Expose the authoritative repository validation for an exact queue and commit URI. - Deliver the repository-only rollout before project-list persistence is available. Changes: - Resolve URI mappings through queue-bound storage and verify request and fact identity. - Preserve the distinction between a missing repository fact and a recorded green result. - Project internal lifecycle states into a stable public request-state vocabulary. - Return project results as empty and incomplete until project persistence is implemented. - Translate defined controller outcomes into stable gRPC status codes. --- <sub>Generated by the 🪄 [pr-create](https://sg.uberinternal.com/code.uber.internal/uber-code/devexp-agent-marketplace/-/blob/claude-code/plugins/dev/uber-dev/skills/pr-create/SKILL.md) skill in devexp-agent-marketplace</sub>
Summary: This PR builds on #637, which defines the GetProjectStatusByURI contract and rollout. Intent: - Expose the authoritative repository validation for an exact queue and commit URI. - Deliver the repository-only rollout before project-list persistence is available. Changes: - Resolve URI mappings through queue-bound storage and verify request and fact identity. - Preserve the distinction between a missing repository fact and a recorded green result. - Project internal lifecycle states into a stable public request-state vocabulary. - Return project results as empty and incomplete until project persistence is implemented. - Translate defined controller outcomes into stable gRPC status codes. --- <sub>Generated by the 🪄 [pr-create](https://sg.uberinternal.com/code.uber.internal/uber-code/devexp-agent-marketplace/-/blob/claude-code/plugins/dev/uber-dev/skills/pr-create/SKILL.md) skill in devexp-agent-marketplace</sub>
Summary: This PR builds on #637, which defines the GetProjectStatusByURI contract and rollout. Intent: - Expose the authoritative repository validation for an exact queue and commit URI. - Deliver the repository-only rollout before project-list persistence is available. Changes: - Resolve URI mappings through queue-bound storage and verify request and fact identity. - Preserve the distinction between a missing repository fact and a recorded green result. - Project internal lifecycle states into a stable public request-state vocabulary. - Return project results as empty and incomplete until project persistence is implemented. - Translate defined controller outcomes into stable gRPC status codes. --- <sub>Generated by the 🪄 [pr-create](https://sg.uberinternal.com/code.uber.internal/uber-code/devexp-agent-marketplace/-/blob/claude-code/plugins/dev/uber-dev/skills/pr-create/SKILL.md) skill in devexp-agent-marketplace</sub>
46f9316 to
8458952
Compare
Summary
Define and publish the Stovepipe
GetProjectStatusByURIcurrent-state API for queue- and commit-scoped validation lookup.Intent
Changes
GetProjectStatusByURIrequest, response, RPC, and generated gRPC/YARPC bindings.Test Plan
Issues