Skip to content

feat(stovepipe): define GetProjectStatusByURI API - #637

Open
mnoah1 wants to merge 1 commit into
mainfrom
mnoah1/stovepipe-get-validation-api
Open

feat(stovepipe): define GetProjectStatusByURI API#637
mnoah1 wants to merge 1 commit into
mainfrom
mnoah1/stovepipe-get-validation-api

Conversation

@mnoah1

@mnoah1 mnoah1 commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Define and publish the Stovepipe GetProjectStatusByURI current-state API for queue- and commit-scoped validation lookup.

Intent

  • Provide CD clients with the current request lifecycle and durable validation result for an exact commit URI.
  • Keep the RFC and reviewed protobuf contract together in one core design change.
  • Reserve a paginated project-result shape for the later project-level rollout.

Changes

  • Adds the GetProjectStatusByURI request, response, RPC, and generated gRPC/YARPC bindings.
  • Uses optional scalar breakage degrees so an absent result remains distinct from fully green degree zero.
  • Defines authoritative request selection, public lifecycle states, project-list completion, pagination, and phased rollout behavior.
  • Links the RFC to the published protobuf types instead of duplicating the wire contract.

Test Plan

Issues

@mnoah1 mnoah1 changed the title docs(stovepipe): propose GetValidation API [draft/wipdocs(stovepipe): propose GetValidation API Aug 26, 2026
@mnoah1 mnoah1 changed the title [draft/wipdocs(stovepipe): propose GetValidation API [draft/wip] docs(stovepipe): propose GetValidation API Aug 26, 2026
@mnoah1 mnoah1 changed the title [draft/wip] docs(stovepipe): propose GetValidation API docs(stovepipe): propose GetValidation API Aug 26, 2026
@mnoah1 mnoah1 changed the title docs(stovepipe): propose GetValidation API [draft/wip] docs(stovepipe): propose GetValidation API Aug 26, 2026
mnoah1 added a commit that referenced this pull request Aug 27, 2026
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>
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-get-validation-api branch from a3459c7 to 09423b6 Compare August 27, 2026 15:39
@mnoah1
mnoah1 changed the base branch from mnoah1/stovepipe-history-api to main August 27, 2026 15:39
@mnoah1 mnoah1 changed the title [draft/wip] docs(stovepipe): propose GetValidation API docs(stovepipe): propose GetProjectStatusByURI API Aug 27, 2026
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-get-validation-api branch 2 times, most recently from 93837f3 to e595f9e Compare August 27, 2026 17:27
@mnoah1 mnoah1 changed the title docs(stovepipe): propose GetProjectStatusByURI API feat(stovepipe): define GetProjectStatusByURI API Aug 27, 2026
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-get-validation-api branch from e595f9e to b3d1fab Compare August 27, 2026 20:35
@mnoah1
mnoah1 marked this pull request as ready for review August 27, 2026 20:45
@mnoah1
mnoah1 requested review from a team, behinddwalls and sbalabanov as code owners August 27, 2026 20:45
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-get-validation-api branch from 93199d8 to b3d1fab Compare August 28, 2026 18:31
Comment thread api/stovepipe/proto/stovepipe.proto Outdated
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;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is this for? I am unable to relate what does it support?

@mnoah1 mnoah1 Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this optional? I assume if project is not provided we are retruning overall status plus paged projects

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-get-validation-api branch from b3d1fab to 46f9316 Compare August 31, 2026 15:10
mnoah1 added a commit that referenced this pull request Aug 31, 2026
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>
mnoah1 added a commit that referenced this pull request Aug 31, 2026
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>
mnoah1 added a commit that referenced this pull request Aug 31, 2026
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>
@mnoah1
mnoah1 force-pushed the mnoah1/stovepipe-get-validation-api branch from 46f9316 to 8458952 Compare August 31, 2026 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants